关于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;
}



