缓冲区的清理工作是如何进行的
1.#include <iostream>
2.using namespace std;
3. int main()
4. {
5.char ch1[20];
6.char ch2[20];
7.cout < < "请输入第一串字符: ";
8.cin.get(ch1,20);
9.cout < < "字符串1为: " < <ch1 < <endl;
10.cout < < "请输入第二串字符: " < <endl;
11.cin.get(ch2,20);
12.cout < < "字符串2为: " < <ch2 < <endl;
13.cout < < "程序结束\n ";
14.return 0;
15.}
输出:
请输入第一串字符:hello world
字符串1为:hello world
请输入第二串字符:
字符串2为:
程序结束
从上面的语句我们可以看出第8行在输入hello world按下回车键后,回车键\n也被存放在了缓冲区,因此第11行根本没有提示用户输入就直接回车了。这样ch2保存的是空字符。
我有个问题,第11行之前不是有输出吗,如:
10.cout < < "请输入第二串字符: " < <endl;
最后的endl不是换行并刷新缓冲区吗,为什么没有将第8行按下的回车键给刷新掉??
[解决办法]
输入缓冲和输出缓冲是2码事啊。