Q
C++:從管道
1
A
回答
10
您的shell將標準輸出more
連接到標準輸入myexe.x
。所以你可以從std::cin
中讀取,不用擔心輸入是來自鍵盤還是其他程序。
例如:
vector<float> myVec;
copy(istream_iterator<float>(cin), istream_iterator<float>(),
back_inserter(myVec));
2
這個特定的管道連接到您的應用程序的標準輸入,這樣就可以剛剛從那裏讀取。
4
您可以使用<algorithm>
的std::copy()
來實現,但不需要額外的依賴關係。
#include<iterator>
// ...
std::vector<float> them_numbers(std::istream_iterator<float>(std::cin),
std::istream_iterator<float>());
如果你事先知道你究竟有多少價值的預期,您可避免重新分配:
std::vector<float>::size_type all_of_them /* = ... */;
std::vector<float> them_numbers(all_of_them);
them_numbers.assign(std::istream_iterator<float>(std::cin),
std::istream_iterator<float>());
+0
謝謝,很好的注意。 – Arman 2010-05-20 05:27:09
相關問題
- 1. 從管道讀取C
- 2. C++管道Objective-C
- 3. 在C++中使用管道()的管道管道
- 4. 管道到C++流
- 5. 從多個管道讀取內容,C
- 6. 從Bash管道輸入到C++ cin
- 7. 從C中的管道讀取字符
- 8. 從管道中逐行讀取C
- 9. 從.NET C調用BizTalk管道組件#
- 10. Python - 簡單的讀管道從管道
- 11. 從亞馬遜數據管道中的管道調用管道
- 12. 從命名管道
- 13. 如何從管道
- 14. awk中從管道
- 15. 從同一管道
- 16. 如何將數據從管道重定向到c中的另一個管道?
- 17. 2個孩子寫信給管道,家長從管道中讀取C
- 18. fork()和管道()in c
- 19. C#或Python管道阻塞
- 20. 管道使用C++處理
- 21. 多管道實現用C
- 22. C - stdin,unix管道和EOF
- 23. 管道到Bash在C
- 24. c中的進程管道#
- 25. C中的並行管道#
- 26. 通過管道在C
- 27. C#/ Tamir.SharpSsh:System.IO.IOException:管道關閉
- 28. 管道在C殼執行
- 29. C編碼多個管道
- 30. bash + c管道參數
感謝托馬斯,但怎麼樣的輸入端?我應該檢查結束EOF?或者是什麼? – Arman 2010-05-19 17:04:02
@arman - istream_iterator()表示輸入結束。 –
2010-05-19 17:09:43