我有一个我正在编写的程序,我已经完成了它,但它的要求/规范说:
在“命令提示符”中,如果有人像这样运行您的程序:
Peter David < savednames.txt
它应打印出savednames.txt
内与“Peter”和“David”相匹配的名称
我编写了程序,但我自己是交互式的,即它要求输入文件,然后输入要搜索的名称,然后打印匹配。
它工作得很好,但我不明白在命令提示符下运行程序是什么:"Peter David < savednames.txt"
的意思。我在Microsoft Windows上使用C ++。
我需要你的帮助来解释它以及如何在我的代码中实现它...是某种运算符重载还是......我不明白!
答案 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
读出的流。
您只需要一次读取一行标准输入,并根据您收到的参数进行处理。
你只需要修改你已经拥有的代码从命令行获取名称(有限制吗?可能有三个名称?还是四个?你需要考虑这个)和从标准输入流中读取数据,无需打开文件。