About循环,它有一些错误
About loop, it has some errors
我试着识别一个数字是否是整数。
-
当我运行这个命令时,我输入一个数字,比如5.5,它显示"5.5不是整型"。请再试一次。然后我输入字母,比如"a",它显示"5.5 is not int"。请再试一次。字母"a"是一个字符,不是整数,我认为它应该去第二个情况,必须显示"No letter please",但它不是
-
当我第一次输入一个字母,如"D"时,程序会无限次运行"请不要字母"。我希望它显示"请不要字母",但只有一次,然后我可以在这个循环中输入另一个数字。
如何修复这些错误?
while (true) {
while ((num) != static_cast<int>(num)) {
cout << "t" << num << " is not int. Please try again: ";
cin >> num;
cin.clear();
cin.ignore(80, 'n');
}
while (!(cin >> num)) {
cout << "tNo letter please: ";
cin >> num;
cin.clear();
cin.ignore(80, 'n');
}
cout << "Good! " << num << " is an int!nn";
}
您可以这样做。输入来自user的字符串。计算该字符串中的字符数。如果它等于字符串长度,则它是一个有效的正整数。对于负整数,只需检查位数是否比字符串的大小小1,并且字符串从0开始。
#include <iostream>
using namespace std;
int main()
{
string s;
while(true)
{
cin>>s;
int i,no_of_digits=0;
for(int i=0;i<s.length();i++)
{
if(isdigit(s[i]))
no_of_digits++;
}
if(no_of_digits == s.length() || (no_of_digits == s.length()-1 && s[0]=='-'))
{
cout<<"Good "<<s<<" is an Integer.";
break;
}
cout<<s<<" is not a valid Integer!nPlease Enter againn";
}
return 0;
}
在cpp中解析字符串的最佳方法。使用cpp11的stringstream或sto* series函数。
这里已经有一些好的答案了
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 方法内部但循环仍得到预期的不合格id错误C++
- C++ - 循环访问指针数组会导致错误
- 在分配和发布递增循环迭代器时C++无限循环(gcc 错误?
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- For 循环 C++ 中的值错误
- 为什么我的 for 循环给出错误:X 没有命名类型
- 类方法 - 数据结构中 For 循环的运行时错误
- 试图避免在 for 循环中出现 if-else 语句,但代码似乎有一些错误
- 如何向用户显示特定错误,要求他/她使用循环再次提供输入?
- 循环 c++ 中的分段错误
- 虽然循环即使应用了错误条件也不会退出
- 错误 C2512 视觉C++(并且不是循环依赖项)
- 使用基于范围的指针循环和向量时出现C++错误
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 在指针迭代中使用for循环时出现分段错误
- 向量循环抛出2个错误
- for 循环说 - 错误 成员引用基类型"int [13]"不是结构或联合
- C++,查找最低值,函数错误:循环最多运行一次(循环增量从未执行)