0
這是文件。從文件中讀取字符。 C語言
X 1 0 1
1 X X 1
1 0 1 0
1 1 0 X
0 X 1 1
1 X 1 0
這是我的代碼..第1版。
char cha2[1];
int patternStored[180];
for(a=0;a<(numberOfPatterns*12);a++)
{
fscanf(patternMatFile,"%1s",cha2);
if(cha2[0]=='X')
{
patternStored[a]=2;
}
else
{
patternStored[a]=atoi(cha2);
}
}
代碼的目的是爲了在一次讀取一個字符,並將其保存到數組 上面的代碼工作正常,但..
在循環結束時,我有此錯誤
Run-Time Check Failure #2 - Stack around the variable 'cha2' was corrupted.
這是第二個版本。
char cha[4];
int patternStored[180];
for(a=0;a<(numberOfPatterns*12);a++)
{
fscanf(patternMatFile,"%c",cha);
if(cha[0]=='X')
{
patternStored[a]=2;
}
else
{
patternStored[a]=atoi(cha);
}
}
第二個版本沒有錯誤。但它僅與%d
..只有數字工程..
我居然不知道正確的方式來獲得文件使用fscanf
,尤其是%
事單個字符。
TKZ ..
從文件讀取時,'fscanf'幾乎從來不是答案。 'fgets' /'sscanf'幾乎總是更好,通常有比這更好的方法。 –