我的程序需要接受3种输入的输入文件下命令:如何阅读既argv的和重定向从输入文件
./Myprogram input.txt
./Myprogram < input.txt
./Myprogram
我在考虑使用argc
检查参数的个数解决前两种情况(因为重定向不算作参数)。但后来我坚持最后一个案例,它只是等待用户输入。
我想知道是否有方法可以告诉shell命令中是否存在重定向?
对于更复杂的场景,例如混合重定向和argv形式(请参见下文)。有没有办法做到这一点,或者它只是一个糟糕的设计,用于获取用户命令?
./Myprogram input1.txt input2.txt input3.txt
./Myprogram input1.txt < input2.txt input3.txt
./Myprogram
任何帮助将不胜感激!
Z.Zen
你想为第三种情况做什么?如果您只是从标准输入读取数据,则第二个和第三个数据可以被视为相同。另一方面,如果你使用例如'curses'或'readline',那么第三个可能会不同。 – 2010-10-19 03:57:24
查看Herb Sutter的“More Exceptional C++”。如果我没有记错,它解决了这个问题。 – 2010-10-19 14:09:24