私は現在、「C++ Primer Plus」という本に取り組んでおり、プログラミングの演習を行っています。どうやら、次のコードが動作するはずの方法で動作しないため、Xcode(4.3.3) で問題が発生しています。
#include <iostream>
#include <string>
struct car
{
std::string maker;
int year;
};
int main()
{
using namespace std;
cout << "How many cars do you wish to catalog? ";
int nCars;
(cin >> nCars).get();
car* aCars = new car[nCars];
for (int i = 0; i < nCars; i++)
{
cout << "\nCar #" << (i + 1) << endl;
cout << "Please enter the make: ";
getline (cin, (aCars + i)->maker);
cout << "\nPlease enter the year made: ";
(cin >> (aCars + i)->year).get();
}
cout << "Here is your collection: \n";
for (int i = 0; i < nCars; i++)
{
cout << (aCars + i)->year << " " << (aCars + i)->maker << endl;
}
delete [] aCars;
return 0;
}
問題は、どのメーカーにも入る機会がないことです。「(cin >> nCars).get();」を使用しているにもかかわらず、プログラムは年を入力する必要があるポイントに直接進みます。改行文字を取り除く。
私は何かを見落としていますか?
前もって感謝します!