所以我有这个C++值更新/忽略
int main(){
string input;
string lastName;
string firstName;
int age;
int streetNum;
string streetName;
string town;
string zipCode;
float balance;
Update(lastName, firstName, age, streetNum, streetName, town, zipCode, balance);
}
,这里是功能更新
void Update(string &lastname, string &firstname, int &age, int &streetnum, string &streetname, string &town, string &zipcode, float &balance){
cout << "Update the following, enter nothing to leave the same: " << endl;
string input;
cout << "Last name: ";
getline(cin, input);
if (input != "\n") { lastname = input; }
cout << "First name: ";
getline(cin, input);
if (input != "\n") { firstname = input; }
cout << "Age: ";
getline(cin, input);
if (input != "\n") { age = atoi(input.c_str()); }
cout << "Street number: ";
getline(cin, input);
if (input != "\n") { streetnum = atoi(input.c_str()); }
cout << "Street name: ";
getline(cin, input);
if (input != "\n") { streetname = input; }
cout << "Town name:";
getline(cin, input);
if (input != "\n") { town = input; }
cout << "ZipCode: ";
getline(cin, input);
if (input != "\n") { zipcode = input; }
cout << "Balance: ";
getline(cin, input);
if (input != "\n") { balance = atof(input.c_str()); }
}
我的目标是更新的价值或跳到下一个值,如果输入的是' \ N”。
一旦运行并且程序调用Update,它会在同一行上输出“Last Name:First Name:”而不让用户输入任何内容到姓氏中。我不知道为什么这样做。任何提示或线索方向进入将是有益的。
我似乎无法用您提供的代码重现您的问题。也许有一个'\ n'“卡在”cin中,你没有在你的代码中的其他地方处理? – godel9 2014-09-13 04:54:38
你是否在某处使用'cin >>?看起来像尾随换行问题 – P0W 2014-09-13 04:55:53
是的,我有另一个功能类似于更新()。唯一的区别是它更新可以跳过输入。什么是后续换行问题? – user3348713 2014-09-13 05:19:40