C++语言查一下这段代码freopen有错吗?文件里没有输出结果。
发布网友
发布时间:2022-05-02 06:58
我来回答
共1个回答
热心网友
时间:2022-07-01 13:53
1. freopen是重定向文件流的函数,而fopen才是正常情况下用来打开文件的函数,但是如果非得用freopen也不是不可以。
2.你前面已经打开过文件了,就不需要再使用freopen打开一次了,我不建议连续调用两次freopen。你可以只调用一次freopen,然后判断stdin和stdout是否为NULL。
3.最后就是问题的关键了,如果我没弄错的话,freopen的第三个参数是FILE*类型的,也就是说stdin和stdout也是FILE*类型。但是cout是控制台输出函数,不是文件输出函数。因此需要使用fprintf、fwrite等函数将数据写入到文件中。
我推荐你有机会的话仔细地阅读有关C++文件输入输出的书籍或者资料,因为你一直在使用C语言的文件读写函数写一个C++程序。