我使用Ascii
方法从C
中的文件中读取了一些fgetc()
个值。
它将数字转换为它们的Ascii数字,如:值4等于52,因为52是Ascii代码,依此类推所有整数。
现在关于这个的所有答案都使用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等。
感谢您的帮助。
答案 0 :(得分:4)
处理ASCII编码时,这是相当简单的。只需从ASCII值中减去48即可转换为代表的数字。
int actualNumber = asciiValue - 48;
根据输入数据的可靠性,通常明智的做法是检查输入实际上是在“0”到“9”的范围内。如果您盲目地将该公式应用于不代表数字的ASCII值,您可以获得一些非常奇怪的结果。