使用C语言遍历文件时出现奇怪的空格

时间:2019-01-05 21:39:29

标签: c file

早上好,这是我的代码:

FILE* fp;
fp = fopen("a.txt","r+");
if (fp != NULL){
    int c = 0;
    while(!feof(fp)) {
        char k = fgetc(fp);
        if (k == '$') {
            c = 0;
            printf("inside '%c' %d\n", k, c);
            continue;
        }
        c++;
        printf("outside '%c' %d\n", k, c);
    }

这是文件:

  

123456 $ test $ pan $ test $

输出:

“ 1”外1
'2'2以外
'3'3以外
'4'4以外的
'5'5以外
'6'6以外
'7side'// *
在“ $”内部0
't'1以外
在“ e” 2之外
在's'3以外
't'4外的
'5side'// *
在“ $”内部0
'p'1以外的
'a'2外的
在'n'3以外
在“ $”内部0
't'1以外
在“ e” 2之外
在's'3以外
't'4外的
在“ $”内部0
在'́'之外1 // *

我无法理解// *

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为您在 a.txt 中的每个'$'之前都有不可打印的字符,即使没有通过记事本指示出来,因为您可以看到写入的计数达到7到5等,这不是如果文字是我们看到的文字,则可能

a.txt 仅包含ascii字符,还是UTF8或类似的字符?记事本可以管理编码,但是 fgetc 不能