如何在C ++代码中从shell重定向获取文件名?即./MyProgram< myfile,我想逐行获取myfile作为文件名及其内容。
**编辑:我设法从文件中获取输入。谢谢您的帮助。但是,在循环遍历文件内容之后,我想用cin保持用户输入。就像这样:
while (true)
{
if (cin.eof() == false)
{
getline(cin, line);
cout << line;
}else{
cin >> choice;
}
}
答案 0 :(得分:8)
你不能(至少不能携带)。该信息未提供给该计划。相反,您可以通过读取标准输入来访问myfile
(在您的示例中)中的数据。例如,你可以使用C ++的getline和cin
作为第一个参数。
答案 1 :(得分:2)
根据shell的不同,您可能继承了表示实际文件或管道的描述符。如果它是一个实际的管道(即fifo),这个名字并不意味着什么。但是你可以在Linux上获得这个名字(在Windows上,但听起来你并不感兴趣)。