1
#include <iostream>
using namespace std;
int main() {
#ifdef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    int n;
    cin >> n;
    cout << n + 1;
    return 0;
}

在 vs 代码中使用 freopen 输入和输出我的程序在 c++ 中的结果时,我没有在 ouput.txt 文件中得到输出。例如:我创建了一个程序来输入编号。n 和输出 n+1。但是在输入中输入 24 时,我在 ouput.txt 中得到 32765,但在我的终端中,我得到 25 就是这样。通过一次又一次地编译程序,32765 变为 32767 等等。

4

1 回答 1

0

以这种方式读取文件时,请确保您引用的文件位于终端的当前工作目录中。


在以下文件夹结构中

ParentFolder
├── Folder1
│   ├── code
│   ├── code.cpp
│   └── input.txt
└── Folder2
    └── input.txt

如果您当前的工作目录是Folder2,那么ParentFolder/Folder2/input.txt 即使您在与代码和可执行文件相同的文件夹中有输入文件,使用的输入文件也将是,因为相对路径是使用终端工作目录决定的。

当然,如果文件不存在/无法打开,您将获得抓取编号。

于 2021-05-03T05:33:59.290 回答