这是文件。
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..
最佳答案
要获取字符,您需要使用%c
。
关于c - 从文件中读取字符。 C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776621/