字符'<'在命令提示符下

时间:2014-05-03 20:00:14

标签: c++ file class oop output

我有一个我正在编写的程序,我已经完成了它,但它的要求/规范说:

在“命令提示符”中,如果有人像这样运行您的程序:

Peter David < savednames.txt 

它应打印出savednames.txt内与“Peter”和“David”相匹配的名称

我编写了程序,但我自己是交互式的,即它要求输入文件,然后输入要搜索的名称,然后打印匹配。

它工作得很好,但我不明白在命令提示符下运行程序是什么:"Peter David < savednames.txt"的意思。我在Microsoft Windows上使用C ++。

我需要你的帮助来解释它以及如何在我的代码中实现它...是某种运算符重载还是......我不明白!

2 个答案:

答案 0 :(得分:4)

在命令行中,<用于输入重定向。 shell打开名称在<之后的文件,并将其内容复制到程序的标准输入中。

因此,如果您调用program input.txt,则可以使用std::ifstream或其他内容打开文件并阅读其内容;如果您调用program < input.txt,则可以使用cin从标准输入读取文件的内容。

您也可以对输出执行相同的操作。不要打开文件并在代码中写入文件,而是写入stdout并将程序称为program > output.txt

答案 1 :(得分:3)

yourprogramname Peter David < savednames.txt 

表示将使用Peter作为第一个参数调用您的程序,David作为第二个参数调用,并且其标准输入将连接到从savednames.txt读出的流。

您只需要一次读取一行标准输入,并根据您收到的参数进行处理。

你只需要修改你已经拥有的代码从命令行获取名称(有限制吗?可能有三个名称?还是四个?你需要考虑这个)和从标准输入流中读取数据,无需打开文件。