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