我正在尝试编写一个中缀计算器,并且我想要启动该程序,询问用户是否需要帮助。如果用户输入“y”或“n”,我编写的代码将提供指令,但是,在这两种情况下,程序结束时不允许用户输入中缀表达式并运行程序的其余部分。似乎该程序在cout<<<<<< “表达?”;它没有为用户提供在此之后输入任何内容的选项。
答案 0 :(得分:1)
当您使用cin >> help
时,您只需阅读一个字符y
或n
。之后的换行符保留在输入缓冲区中。
然后当主函数使用getline
时,它会读取下一个换行符,该换行符是provideHelpIfNecessary
留在缓冲区中的换行符。所以它只读取一个零长度的行,这导致while
循环到break
。
在getline
只读一个字符的instad中使用provideHelpIfNecessary
。