从文件中读取字符。 C语言

时间:2011-10-15 08:11:00

标签: 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 ..

1 个答案:

答案 0 :(得分:1)

要获取字符,您需要使用%c