devc++文件输入不工作
devc++ input from file does not work
我试图将。txt内容重定向到。exe
program.exe & lt;file.txt
和file.txt的内容为
35345345345
34543534562
23435635432
35683045342
69849593458
95238942394
28934928341
但是数组的第一个索引是文件路径,不显示文件内容。
int main(int argc, char *args[])
{
for(int c = 0; c<argc; c++){
cout << "Param " << c << ": " << args[c] << "n";
}
system("PAUSE");
return EXIT_SUCCESS;
}
所需输出:Param0: 35345345345
Param1: 34543534562
Param2: 23435635432
Param3: 35683045342
Param4: 69849593458
Param5: 95238942394
Param6: 28934928341
myapp < file.txt
语法传递给stdin
(或者您喜欢的cin
),而不是参数。
您误解了argc
和argv
的用途。它们包含程序的命令行参数。例如,如果您输入:
program.exe something 123
argv
指向的空终止字符串将是program.exe
、something
和123
。
您正在尝试使用< file.txt
将文件的内容重定向到program.exe
。这是而不是命令行参数。它只是将文件的内容重定向到程序的标准输入。要获得这些内容,您需要从std::cin
中提取。
当您说"但是数组中的第一个索引是文件路径并且文件内容未显示"时,听起来您正在尝试从argv和argc读取输入。尖括号壳操作符不是这样工作的。相反,stdin (cin和几个C函数从中读取的内容)具有该文件的内容。因此,要从上面例子中的文件中读取,您可以使用cin.
如果你真的想要一个文件自动插入到参数列表中,我无法帮助你使用windows shell。但是,如果您可以选择使用bash
,则可以使用以下命令:
program.exe `cat file.txt`
反打号操作符展开为其中包含的命令的结果,因此内容随后作为参数传递给program.exe(同样,在bash
shell下而不是windows shell下)
这段代码完成了我对另一段代码的期望。谢谢所有帮助过我的人。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string line;
while (getline(cin, line))
cout << "line: " << line << 'n';
}
相关文章:
- 输入数据成员未按要求工作
- 实现 DFS 在较短的输入下工作正常,但在较大的输入下会抛出分段错误
- 当输入在带有空格的单行中给出时,cin 如何在 while 循环中工作?
- 为什么我的 while 循环对于特定输入中断,而对于其他输入工作正常?
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 如果我决定输入 (1 2) 而它要求 x,为什么我的输出会出错,但如果我输入 (12) 工作正常
- C++ 用户输入验证无法正常工作
- 我正在努力处理多维数组输入和输出,我管理输入,但是打印无法按计划工作
- 用于了解输入和输出流缓冲区实际工作方式的程序
- 输入数据类型检查循环未按预期工作 (C++)
- 我可以更改将引用参数传递到指针中并使其正常工作的函数的输入(C、C++)吗?
- 当我尝试输入时程序停止工作
- C++参数化构造函数使代码在传递大输入时停止工作
- 连续 cin 输入在C++中的工作原理
- 为什么我的程序在输入main()之前停止工作
- C++输入重定向导致文件参数工作时出错
- 在我的输入中没有空格的情况下,程序工作正常?C++
- 有人可以向我解释一下这段代码是如何工作的吗?(程序在预期数值且用户输入其他输入时再次要求用户输入)
- 试图让while循环工作,当输入符号而不是字符时会中断
- 找出一个正方形逻辑中可能的网格数量,但代码不接受超过六个输入,它停止并说.exe停止工作