早上好,这是我的代码:
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 // *
我无法理解// *
感谢您的帮助!
答案 0 :(得分:0)
我认为您在 a.txt 中的每个'$'之前都有不可打印的字符,即使没有通过记事本指示出来,因为您可以看到写入的计数达到7到5等,这不是如果文字是我们看到的文字,则可能
a.txt 仅包含ascii字符,还是UTF8或类似的字符?记事本可以管理编码,但是 fgetc 不能