C++为什么运行有结果,但是out文件没结果。 初学小白,求指导!!!

#include <iostream>#include<cstdio>using namespace std;int main(){ freopen("C:\\Users\\26400\\Desktop\\C++\\inout\\inout.in", "r", stdin); int a[4], b[4]; for (int i = 0; i < 6; i++) { cin >> a[i] >> b[i]; } for (int i = 0; i < 5; i++) { if (i == 0) cout << a[i] + b[i] << endl; else if (i == 1) cout << a[i] - b[i] << endl; else if (i == 2) cout << a[i] * b[i] << endl; else if (i == 3) cout << a[i] / b[i] << endl; else cout << a[i] %b[i] << endl; } freopen("C:\\Users\\26400\\Desktop\\C++\\inout\\inout.out", "w", stdout); fclose(stdin); fclose(stdout); return 0;}

这段C++代码中,程序通过freopen()函数将标准输入(stdin)重定向到指定文件"C:\Users\26400\Desktop\C++\inout\inout.in",并将标准输出(stdout)重定向到指定文件"C:\Users\26400\Desktop\C++\inout\inout.out"。在程序执行过程中,输入来自指定文件中的数据,输出则写入指定文件。但是在程序中,fclose(stdin)和fclose(stdout)函数是错误的,应该避免使用。在程序执行到fclose(stdin)时,stdin指向的文件流关闭,下面的输入操作就会受到影响,从而出错。同理,fclose(stdout)会关闭文件流,导致后面的输出没有写入到指定文件中。
因此,要使程序正常运行并将结果输出到指定文件中,需要在输入和输出完毕后,使用fclose()函数关闭文件流。另外,在写文件路径时,应该使用双反斜杠"\ "来代替单个反斜杠"",因为单个反斜杠会被解释为转义字符。追问

请问fclose()如何使用?

追答

fclose() 是 C 标准库中的一个函数,用于关闭文件。具体用法如下:
#include
int fclose(FILE *stream);
其中,stream 是文件指针,指向要关闭的文件。函数返回值为 0 表示关闭成功,为 EOF 表示关闭失败。

下面是一个简单的示例,演示如何使用 fclose() 关闭一个已打开的文件:
#include
int main() {
FILE *fp;

char c;
/* 打开文件 */
fp = fopen("file.txt", "r");

/* 读取并显示文件内容 */
while ((c = fgetc(fp)) != EOF) {

printf("%c", c);
}
/* 关闭文件 */
fclose(fp);

return 0;
}
在上面的示例中,先用 fopen() 函数打开一个名为 "file.txt" 的文件,并将其赋值给指针 fp,然后使用 fgetc() 逐字符读取文件内容,并将读取到的字符输出到屏幕上。最后使用 fclose() 函数关闭文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-04
freopen在输出语句之后调用啥用也没有,你应该在开头调用
相似回答
大家正在搜