如何在C语言程序中使用input.txt文件作为输入?
在VS Code中实现C语言读取input.txt的两种方案
方案一:代码直接读取文件(无需修改launch.json)
这种方式直接在代码中打开input.txt并读取,不需要配置调试参数:
#include <stdio.h> int main() { // 打开当前目录下的input.txt,只读模式 FILE *fp = fopen("input.txt", "r"); if (fp == NULL) { perror("打开文件失败"); return 1; } int num; // 循环读取文件中的整数,直到文件结束 while (fscanf(fp, "%d", &num) != EOF) { printf("读取到数字:%d\n", num); } fclose(fp); // 关闭文件 return 0; }
注意:确保input.txt和编译后的可执行文件在同一目录,或者在fopen中写完整文件路径(比如"/home/user/project/input.txt")。
方案二:标准输入重定向(需配置launch.json)
这种方式保持代码使用标准输入(scanf),通过调试配置将input.txt作为输入源:
1. 基础C代码(使用scanf读取)
#include <stdio.h> int main() { int num; // 从标准输入读取数字,直到输入结束 while (scanf("%d", &num) != EOF) { printf("读取到数字:%d\n", num); } return 0; }
2. 配置launch.json步骤
- 打开VS Code的运行和调试面板(快捷键
Ctrl+Shift+D) - 点击「创建launch.json文件」,选择
C/C++ (GDB/LLDB)环境,生成默认配置 - 在生成的
launch.json中,找到configurations数组内的配置项,添加"args": ["<", "${workspaceFolder}/input.txt"]
示例完整的launch.json:
{ "version": "0.2.0", "configurations": [ { "name": "gcc - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": ["<", "${workspaceFolder}/input.txt"], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: gcc 生成活动文件", "miDebuggerPath": "/usr/bin/gdb" } ] }
配置说明
${workspaceFolder}指代你的项目根目录,确保input.txt放在该目录下;如果文件在其他位置,替换为对应路径(比如${fileDirname}/input.txt表示和当前源文件同目录)externalConsole设为true或false都不影响重定向效果,根据个人习惯选择是否弹出外部控制台
内容的提问来源于stack exchange,提问作者Shinny
相关产品推荐
相关产品推荐

