第一次没乱码,第二次,第三次就乱码了,这怎么解决?
#include
int main() {
FILE* pfile = fopen("E:\\Visual Studio 2022 project\\文件2题目\\s.txt", "r");
char str[500];
char ch;
while (1) {
fgets(str, 500, pfile);
puts(str);
for (int i = 0; i < 500; i++) {
str[i] = 0;
}
if (ch = fgetc(pfile) == EOF) {
break;
}
}
fclose(pfile);
return 0;
}
#include<stdio.h>
int main() {
FILE* pfile = fopen("s.txt", "r");
char str[256] = "";
char ch = 0;
while (1) {
fgets(str, 255, pfile);
puts(str);
memset(str, 0, 256);
if (ch = fgetc(pfile) == EOF) {
break;
}
fseek(pfile, -1, SEEK_CUR); //将文件指针向前移动一个字节
}
fclose(pfile);
getchar();
return 0;
}
因为你后面fgetc了一下,文件指针向后移动了一个字节,fgetc后面将文件指针向前移动一个字节即可