关于fgetc()/fgets,对数据流的影响问题
我的这个程序,加入了被注释部分就能正常运行,但是如果不加入注释部分,fgets返回的tmp为空指针,当然如果不输出文件内容也能正常fgets.请问这是为什么?我猜可能是前面读取文件的时候用的fgetc或者putchar对输出的数据流产生了影响,导致其不能正确读入数据.请各位网友为我支招,多谢!
程序代码:
#define _CRT_SECURE_NO_DEPRECATE # include <stdio.h> #include<stdlib.h> #define see system("pause") void main() { FILE *ff; char ch,sh[20],*tmp; ff = fopen("..\\5.txt", "r+");//以读写方式打开文件 if (ff == NULL){ printf("error\n"); see; } while ((ch = fgetc(ff))!= EOF) //输出文件内容 { putchar(ch); } putchar(10); /* fclose(ff); see; ff = fopen("..\\5.txt", "r+"); if (ff == NULL){ printf("error\n"); see; } */ tmp=fgets(sh, 20, ff); //读取文件数据 printf("%s\n", tmp); see; }