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

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

最佳答案

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

关于c - 从文件中读取字符。 C语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776621/

相关文章:

c - 在C中使用fread读回数据后出现错误值

c - 将文件名作为参数传递

c - 在C中生成随机字母

c - 在 for 循环的下一次迭代开始后,指针指向的数据在复制另一个列表末尾的列表时被破坏

查找 "Cullen' 号的 C 代码”

检查 Stackable 文件系统是否以编程方式安装

c - 系统异常处理: try to get the string message with arguments

c++ - 在 if(指针)条件内递增指针

c - 以编程方式访问核心文件内存镜像

c - 在 C 中显示大型数组的错误