[英]C++ Issue - getline skips first input
問題是使用getline()
的部分第一次不接受輸入,只是說“輸入字符串:輸入字符串:”,然后您可以在此處輸入內容。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int nums[100], key=0, num = 0;
while(num != -1)
{
cout << "Enter a positive integer (-1 to exit): ";
cin >> num;
if(num != -1)
{
nums[key] = num;
key++;
}
}
if(num != -1)
{
nums[key] = num;
key++;
}
int numElements = key;
string inStrings[100];
for(int i=0; i < numElements; i++)
{
cout << "\n";
cout << "Enter a string: ";
getline(cin, inStrings[i]);
}
for(int i=0; i < numElements; i++)
{
cout << nums[i] << " :: " << inStrings[i];
}
}
問題是您首先使用cin >> num;
讀取數字,但這會在getline()
調用讀取的流中留下換行符。
也許添加一個cin.ignore(1,'\\n');
在cin >> num;
吃流浪換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.