在使用arduino扩展我的c ++知识的过程中。我从基础开始,然后向外扩展。下面是我编写的用于获取用户名称和年龄的程序。理想情况下,如果用户正确输入了年龄,它将在最后打印出该值。
但是,如果用户输入字母,它会告诉他们否,并要求输入正确的年龄。
可能不是最好的逻辑,但是我发现输入到int
的字符变成0,并且由于不能将年龄设为0,因此我进行了一次输入检查,以确保输入的字符不是0。
因此由于某种原因它无法正常工作:age变量始终为零。我怀疑这可能是因为我使用了这个年龄的整数,而不是双精度数,但是...
#include "pch.h"
#include <iostream>
#include <string>
int num1, num2;
std::string Usrname;
int main()
{
std::cout << "Name: ";
getline(std::cin, Usrname);
num1 = Usrname.length();
int ok = 0;
while (ok == 0) {
std::cout << "Age: ";
std::cin.get() >> num2;
std::cin.ignore();
if (num2 == 0) {
std::cout << "Wrong Input, Please input ";
}
else { ok = 1; }
}
std::cout << "The Name " << Usrname << " is " << num1 << " Characters long." << std::endl;
std::cout << Usrname << " is " << num2 << " years old." << std::endl;
return 0;
}
答案 0 :(得分:3)
std::cin.get() >> num2;
应该是
std::cin >> num2;
P.S。学习C ++的正确方法包括学习调试器的正确使用方法,尤其是无聊的逐步执行。