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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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() 函数关闭文件。

参考技术A freopen在输出语句之后调用啥用也没有,你应该在开头调用

以上是关于C++为啥运行有结果,但是out文件没结果。 初学小白,求指导!!!的主要内容,如果未能解决你的问题,请参考以下文章

c++运行结果为啥出现NAN

C++中 return -1;为啥结果显示4294967297

为啥当我使用变量存储数值结果而不是重新计算时,C++ 程序运行速度较慢?

如何读取pig运行结果part

为啥我的解算没出错,但是没有计算结果

初学单片机,学写了个程序,结果有错误,找了一下午也没找到