这是档案。
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 ..
答案 0 :(得分:1)
要获取字符,您需要使用%c
。