我的程序需要接受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