微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

读取文件并使用fscanf进入无限循环

如何解决读取文件并使用fscanf进入无限循环

| 这是赋予文件进行扫描的功能
void scan(FILE *file) {

    while (true) {
        char s1[1001];
        int result = fscanf(file,\"%10s\",s1);
        printf(\"%d\\n\",result);
        s1[1001] = \'\\0\';
        if (result == EOF) break;
    }


}
在将fopen传递给此函数之前,我在文件上使用了fopen。 它在无限循环中输出-1,但不会中断。怎么来的?

解决方法

我猜这取决于what1ѭ。 确保其为
char s1[ appropriate_size ]
,而不是
char * s1
。 就我而言,它的工作很棒:,当您在ѭ1ter中强制使用空终止符时,您会遇到一个错误的错误,这是:
s1[1001] = \'\\0\';
越过
s1
的末尾,应为:
s1[1000] = \'\\0\';
当您在C中将数组声明为
char s1[X];
时,the9ѭ是数组中元素的数量,并且由于C数组的索引从零开始,因此最后一个元素为is10ѭ。 这种一一对应的操作可能会在
printf
result == EOF
支票之间改变
result
的值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。