将ASCII数转换为它的ASCII字符代码 - C(不打印!)

时间:2016-03-07 16:31:51

标签: c file int character ascii

我使用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等。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

处理ASCII编码时,这是相当简单的。只需从ASCII值中减去48即可转换为代表的数字。

int actualNumber = asciiValue - 48;

根据输入数据的可靠性,通常明智的做法是检查输入实际上是在“0”到“9”的范围内。如果您盲目地将该公式应用于不代表数字的ASCII值,您可以获得一些非常奇怪的结果。