为什么它总是给我大于 4?
why does it give me bigger than 4 always?
在我循环每个其他数字后,我试图获得大于 4 的数字,但问题是即使数字不大于 4,它也一直给我大于 4。谢谢!
#include <iostream>
#include <vector>
#include <string>
using namespace std;
bool isvalidcc(const string& s)
{
vector<char> v (s.begin(), s.end());
for(auto i=0 ; i<v.size();i+=2)
{
if (v.at(i)>'4')
{
cout<<v.at(i)<<"bigger than 4"<<endl;
}
else
{
cout<<v.at(i)<<"smaller than 4"<<endl;
}
}
return false;
}
int main()
{
vector<string> cardnumbers = {
"371449635398431"
};
int i;
vector<string>::iterator itr;
for (i = 1, itr = cardnumbers.begin(); itr != cardnumbers.end(); ++itr, i++) {
// cout << i << " "
// << *itr
((isvalidcc(*itr)));
}
return 0;
}
我想通了
因为 v.at(i(是一个字符而不是一个int,所以它将其转换为ascii代码。 这意味着您必须以正确的方式将 char 转换为 int。
if (v.at(i) - '0' >4)
- '0' 会以正确的方式将其转换为 int,否则它将返回错误的值,您可以通过创建一个新的 int 变量和 cout <<来检查这一点
int n = v.at(i);
cout << n;
相关文章:
- 为什么签名字符可以保存大于 127 的值?
- 为什么它总是给我大于 4?
- 新运算符分配的大小大于声明的大小.为什么
- 为什么 UInt64 变量不能包含大于 UInt32::Max 的值?
- 为什么 ret 指令数大于调用指令数?
- 为什么我的程序跳过 while 循环? 2 大于 -1
- 为什么在视觉C++STL:"C"不大于"b"
- 为什么 CSpinButtonCtrl 不能正确处理大于 1000 的数字?
- 为什么程序显示的值大于结果或垃圾值
- 为什么C++在乘以大于 590x590 大小的矩阵时出现分割错误?
- 为什么收到的缓冲区大小大于最初通过套接字发送的大小
- 为什么代码在输入大于10的输入上会分割故障
- 为什么此代码只能识别文本文件中的第一行?输入任何大于 1 的数字都会返回"Atomic Number Not Found"
- 为什么在 c++ 中计算重复元素时,我的计数值大于数组中的元素数
- 为什么gcc允许字符串文字大于数组的char数组初始化
- 为什么要分配大小为 1 的数组大于请求的大小
- 为什么"A<0>=0"中的模板 id 由于大于或等于运算符">="而无法在没有空格的情况下编译?
- 变量的范围大于for循环,为什么它不改变值
- 为什么大于 128 的对齐方式会表现得很奇怪
- 为什么 1 不大于 -0x80000000