3
我用一個名爲input
的ifstream對象打開了一個.txt文件。如果一個新行以「(」開始,那麼它就不會按照我想要的方式讀取它,預期的輸出不會被打印出來,然後退出循環,我只希望它跳出while循環到達文件的到底是什麼我做錯了我的do while循環,我的.txt文件低於從fstream對象讀取括號。 C++
char c;
int i;
do
{
if(input.peek() == '(' || input.peek() == ')')
{
input >> c;
cout << c;
}else if(input.peek() == '+' || input.peek() == '-' || input.peek() == '*' || input.peek() == '/')
{
input >> c;
cout << c;
}else
{
input >> i;
cout << i;
}
}while(input && input.peek() != EOF);
這裏是.txt文件,每一個單獨行:?
(3)
(3)
4
(5+7)-(5*3)
這是我的輸出:
(3)3
謝謝你,這正是它。有關如何處理線路退貨的任何建議?這就是我現在所擁有的,但它仍然不能工作,我想如何:if(input.peek()=='\ n'){cout << endl; input >> c;}每行的第一個字符都丟失了。 – KKendall 2013-02-10 01:16:12
'cin.ignore();'也許?或'cin.get();'在這種情況下工作。 – 2013-02-10 01:18:05
完美。你是最棒的。我用'input.ignore()'。 – KKendall 2013-02-10 01:29:48