1

問題は、使用する部分が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];
    }

}
4

1 に答える 1

10

問題は、最初に数値を読み取るために使用することですが、呼び出しが読み取るcin >> num;ストリームに改行が残っていることです。getline()

たぶん、その迷子になった改行を食べるために のcin.ignore(1,'\n');後に追加します。cin >> num;

于 2012-04-25T07:45:28.380 に答える