大家好我正在做結構化數據的編程任務,我相信我理解結構如何工作。for loop skipping getline
我正在嘗試閱讀學生姓名,身份證號碼(A號碼)及其餘額的列表。
當我編譯我的代碼時,它會在第一次讀取所有內容,但是第二次在循環中,每次都會提示輸入用戶名,但會跳過getline並直接轉到A-Number A號碼條目。
任何幫助,將不勝感激。試圖找出如何讓循環周而復始的getline工作。
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main(){
const int maxStudents = 30;
struct Students{
string studentName;
int aNumber;
double outstandingBalance;};
Students students[maxStudents];
for(int count = 0; count < maxStudents-1; count++)
{
cout<<"Student Name:";
cin.ignore();
getline(cin,students[count].studentName);
cout<<"\nA-Number:";
cin>>students[count].aNumber;
if(students[count].aNumber == -999)
break;
cout<<"\nOutstanding Balance:";
cin>>students[count].outstandingBalance;
}
cout<<setw(20)<<"A-Number"<<"Name"<<"Balance";
for(int count2 = 29; count2 >= maxStudents-1; count2--)
cout<<setw(20)<<students[count2].aNumber<<students[count2].studentName<<students[count2].outstandingBalance;
system("pause");
return 0;
}
你不能只用'cin >> students [count] .studentName;'。它有效btw – Neox 2012-02-01 15:48:16
@Neox - 如果學生的名字中有空格,就像'約翰漢考克'一樣。 – 2012-02-01 15:51:35