C++存储cin输入并跳过其他输入
C++ storing cin input and skipping others
跳过某些输入时遇到问题。
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;
size_t sz;
cout << "Last name: ";
cin >> input;
if (!input.empty()) { lastname = input; }
cout << "First name: ";
cin >> input;
if (!input.empty()) { firstname = input; }
cout << "Age: ";
cin >> input;
if (!input.empty()) { age = stoi(input, &sz); }
cout << "Street number: ";
cin >> input;
if (!input.empty()) { streetnum = stoi(input, &sz); }
cout << "Street name: ";
cin >> input;
if (!input.empty()) { streetname = stoi(input); }
cout << "Town name:";
cin >> input;
if (!input.empty()) { town = input; }
cout << "ZipCode: ";
cin >> input;
if (!input.empty()) { zipcode = input; }
cout << "Balance: ";
cin >> input;
if (!input.empty()) { balance = stof(input); }
}
如果用户只点击回车键,我的所有尝试都无法跳过输入。
代码的cin
的问题是:
- 它忽略空格,换行符(enter)是一个空格
- 它使用空格作为值的分隔符,因此"Baker street"将被读取为两个字符串,第二个字符串用于城镇
考虑在字符串中使用getline()
(并最终使用字符串流来进一步解析接收到的结果):
getline (cin, input); // instead of cin>>input;
顺便说一句,街道名不是整数,是吗?;-)
相关文章:
- scanf() 只取数字作为输入,避免使用其他字符
- 视频在唤醒其他线程时输入设备断开连接
- 为什么我的 while 循环对于特定输入中断,而对于其他输入工作正常?
- 成员函数不能为集合迭代器和const_iterator的输入重载(但可以为其他 STL 迭代器重载)
- 如何定义此"if block"中其他无效输入的值,以便在c ++中将字符串转换为对象?
- 可视C++ - 从链接器>输入>其他依赖项中排除文件
- 与其他输入相比,达到 65535 时的性能大幅跳跃
- 区分键盘记录器中的密码和其他类型的键盘输入
- isdigit() 和 isalnum() 给出错误,因为输入是一个常量字符并且无法转换。其他可能查看输入是否为数字的方法?
- 如何根据用户输入"weighted"随机数生成,使某些数字优先于其他数字?
- Vigenere密码的C++功能有时才起作用(适用于某些输入,跳过其他输入的班次)
- TensorFlow类占位符以及其他定义输入张量的方法
- 如何从用户输入中获取某些值并忽略其他值
- 在一行中输入具有其他输入类型的多个单词字符串
- 其他语言的Qt键盘输入
- 有人可以向我解释一下这段代码是如何工作的吗?(程序在预期数值且用户输入其他输入时再次要求用户输入)
- 如何引用无效的输入,然后重新输入和如果其他语句
- 全球安装的键盘钩可防止键盘输入其他应用程序
- 为什么我不能继续使用 std::cin 向同一变量输入其他值?
- c++ 输入一个数字来确定其他数字,然后比较它们