freopen() 不读取/写入现有文件,niether 在 vscode 中创建新文件
freopen() does not read / write to existing file, niether creates new file in vscode
我正在尝试从 C++ 中的两个单独的文本文件读取输入和输出。
代码(test.cpp):
#include<bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int x = 6 ;
cin >> x;
cout << x;
}
input.txt:
1
output.txt为空
在 VS 代码中使用终端并编写命令时:
g++ test.cpp
.\a.exe
读取输入文本文件中的数据并将数据写入输出文本文件。
Result after Running
但是如果我使用调试,程序无法识别输入和输出文件。没有输入和输出是read/written。没有错误显示,程序刚刚结束。
Result after using Debugging
launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin",
"environment": [],
"console": "externalTerminal",
"MIMode": "gdb",
"miDebuggerPath": "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
我希望文本文件中的 input/output 在调试时也能发生。
好的,我知道这里发生了什么。在launch.json
文件中,"cwd"
值为正在启动或调试的进程当前工作目录的路径,这是读取输入文件的地方来自和输出文件并默认写入。
您应该将其设置为您正在使用的文件所在的目录。
我正在尝试从 C++ 中的两个单独的文本文件读取输入和输出。
代码(test.cpp):
#include<bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int x = 6 ;
cin >> x;
cout << x;
}
input.txt:
1
output.txt为空
在 VS 代码中使用终端并编写命令时:
g++ test.cpp
.\a.exe
读取输入文本文件中的数据并将数据写入输出文本文件。
Result after Running
但是如果我使用调试,程序无法识别输入和输出文件。没有输入和输出是read/written。没有错误显示,程序刚刚结束。
Result after using Debugging
launch.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin",
"environment": [],
"console": "externalTerminal",
"MIMode": "gdb",
"miDebuggerPath": "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
我希望文本文件中的 input/output 在调试时也能发生。
好的,我知道这里发生了什么。在launch.json
文件中,"cwd"
值为正在启动或调试的进程当前工作目录的路径,这是读取输入文件的地方来自和输出文件并默认写入。
您应该将其设置为您正在使用的文件所在的目录。