0
我使用fgetc()
方法从C
中的文件中读取了一些Ascii
值。 它将数字转换为它们的Ascii数字,例如:数值4等于52,因为它是Ascii代码,以及所有整数。将ASCII编码转换为它的ASCII字符代码 - C(不打印!)
现在所有关于这个的答案使用pritf("%c",c)
简单地将52转换为4但我想将值4存储在一个整数变量。
SomeCode:
int writeFileToArray(FILE* file, int* a, int length)
{
int i = 0;
char temp;
if (file == NULL)
{
return -1;
}
else
{
while (i < length)
{
*(a + i) = fgetc(file);
i++;
}
return 1;
}
}
非但没有52,53,54等,以我想4,5,6等
感谢您的帮助数组。
你甚至可以减去char''0'而不是48来避免魔法常量 –
是的。发布后我自己得到的问题。谢啦。 – God
@Lashane使用“0”并不总是适用于角落的情况,但实际上在大多数编码中都是如此。 OP想要将_ASCII_字符转换为数字值。 “0”是源代码编码中字符0的值,可能不是ASCII。因此,如果代码需要移植到一个非常罕见的EBCDIC机器上,或者可能会移植到一个新的幻想平台上,使用'#define ASCII_0 48 int actualNumber = asciiValue - ASCII_0;'是有道理的。 – chux