gpt4 book ai didi

c++ - cin 和循环的问题

转载 作者:行者123 更新时间:2023-11-30 02:16:06 25 4
gpt4 key购买 nike

在使用 arduino 之外扩展我的 c++ 知识的过程中。我从基础开始,向外扩展。下面是我编写的用于获取用户姓名和年龄的程序。理想情况下,如果用户正确输入年龄,它会在最后打印出该值。

但是,如果用户输入一个字母,它会告诉他们并要求输入正确的年龄。

可能不是最好的逻辑,但我发现输入到 int 中的字符会变成 0,并且年龄不能为 0,所以我有一个 if 检查输入并确保它不是 0。

所以出于某种原因它无法正常工作:年龄变量始终为零。我怀疑可能是我使用的是 int 作为年龄而不是 double 但是 ...

#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;
}

最佳答案

std::cin.get() >> num2;

应该是

std::cin >> num2;

附言学习C++的正确方法包括学习调试器的正确使用,尤其是枯燥的一步步执行。

关于c++ - cin 和循环的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55411183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com