用c语言向一txt文件写入内容后将该写入的内容从txt输出到屏幕上,错在哪?
4个回答
展开全部
原因:
这里存在的问题是:fopen 打开的文件,不执行关闭操作,是不会保存数据至文件的。
你虽然执行了fprintf 写入了数据,但在fclose前就从文件获取数据,数据是没有保存在文件内的,因此该操作获取不到任何数据。
解决方法:
向文件写完数据后,马上执行fclose操作,完成数据的保存,然后再执行fopen 打开该文件,进行fgetc获取数据,打印到屏幕,使用完毕后在关闭该文件。需要注意的地方是,第二次打开文件的操作需要修改为只读或其他读取模式,即 “r+”而不再是 "w+"。
谢谢采纳!
这里存在的问题是:fopen 打开的文件,不执行关闭操作,是不会保存数据至文件的。
你虽然执行了fprintf 写入了数据,但在fclose前就从文件获取数据,数据是没有保存在文件内的,因此该操作获取不到任何数据。
解决方法:
向文件写完数据后,马上执行fclose操作,完成数据的保存,然后再执行fopen 打开该文件,进行fgetc获取数据,打印到屏幕,使用完毕后在关闭该文件。需要注意的地方是,第二次打开文件的操作需要修改为只读或其他读取模式,即 “r+”而不再是 "w+"。
谢谢采纳!
展开全部
在fprintf 下面加上
fseek(fp, 0, SEEK_SET);
就可以了,把文件指针,移动到开始位置
while循环里面还要加上
ch=fgetc(fp);
fseek(fp, 0, SEEK_SET);
就可以了,把文件指针,移动到开始位置
while循环里面还要加上
ch=fgetc(fp);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-22
展开全部
跟你文件的指针有关系,当你添加完数据的时候,文件指针是移动到了最后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fprintf后加
fseek(stream, 0, SEEK_SET);
fseek(stream, 0, SEEK_SET);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询