我正在阅读STDIN中的以下内容
2
hello world
bye world
使用以下代码:
scanf("%d", &n);
while(getline(cin, str))
cout << "*" << str << endl;
这是输出:
*
*
*hello world
*
*bye world
当我使用scanf("%d\n", &n)
完全修改要在第一行读取的代码时,getline
会忽略第一个空行:
*hello world
*
*bye world
我的问题是为什么getline
忽略了第一个空行?
答案 0 :(得分:4)
我的问题是为什么
getline
忽略了第一个空行?
它不是; scanf
正在跳过它。格式字符串中任何数量的连续空格(例如\n
)都会导致它跳过输入中任意数量的连续空格(例如两个换行符)。