0
我有一個程序,它從流中獲取信息並使用cin讀取並稍後轉換輸入。gdb創建流
這是該程序的調用:
cat file1 | ./converter
用C++
正是這種線
while (! cin.eof())
其從流中讀出。
是否可以在gdb中模擬管道? 因爲我不能在沒有它的情況下調試源代碼。
我有一個程序,它從流中獲取信息並使用cin讀取並稍後轉換輸入。gdb創建流
這是該程序的調用:
cat file1 | ./converter
用C++
正是這種線
while (! cin.eof())
其從流中讀出。
是否可以在gdb中模擬管道? 因爲我不能在沒有它的情況下調試源代碼。
如果你讀了documentation,像program input/output的部分,你會看到,你可以正常使用重定向爲run
命令:
(gdb) run < file1
這將stdin
從file1
重定向運行程序。
thx很多:) 現在我感到慚愧,還沒有找到它。 – demonking 2013-04-04 11:16:12
首先,你應該把你的程序改寫爲_not_ do'while(!eof)'。直到你嘗試讀取並且失敗時,'eof'標誌纔會被設置,這意味着你將有一個迭代,讀取失敗,但你可能仍然繼續,就好像什麼也沒有發生。相反,'while(read_operation)'(例如'while(std :: getline(std :: cin,input))')。 – 2013-04-04 09:41:05
Thx爲您的評論,我知道.eof()是至關重要的。 但不允許更改此代碼的部分內容。 – demonking 2013-04-04 11:18:33