如何在c++中将字符转换为整数
how to convert a character to an integer in C++?
如何在c++中将字符转换为整数??
我想从user输入整数,并在用户输入*时停止输入。我使用以下代码:
while(true) {
cin >> x;
if (x == (int) '*')
break;
}
,其中我显式地将*类型转换为int类型。但这似乎行不通。
我也试过
while(true) {
cin >> x;
if (x == (int) '*' - '0')
break;
}
但它没有多大帮助。我还能做什么?X确实是一个整数。但是我想输入一个来自用户的整数。只有当用户输入* I want out of loop时。我应该声明x为char然后转换成int然后使用它吗?我能把char转换成int吗?
您可以尝试这样做,获取字符串。检查它是否是你的"end of input"字符串,如果不是,然后将该字符串转换为int型。
它仍然缺少一堆错误检查。
while(true) {
std::string s
cin >> s;
if (s == "*" ) break;
std::stringstrem ss(s);
ss>>x;
}
您可以使用strtol
将字符串转换为整数:
既然您已经使用了std
,那么您应该读取字符串并使用std::string
进行比较。调查一下。
我不打算给你一个完整的解决方案,因为我认为你最好自己去调查,现在你知道去哪里找了。
我怀疑您已经将x
定义为int
;尝试将其定义为char
:
char x;
while (true)
{
cin >> x;
if (x == '*')
break;
...
}
我认为您可以使用atoi()将char转换为int.
我很确定你不能将一个字符捕获为整数。相反,捕获一个字符,检查*,然后将其伪转换为整数。
char c;
while(true) {
cin >> c;
if (c == '*')
break;
int x = c - '0';
if(x >= 0 && x <= 9){
//do something with integer x
}
}
但是,这只会处理0到9之间的单位数整数
相关文章:
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 尝试将字符串/字符转换为整数会产生意外结果
- 如何使用C++将字符串中的字符转换为整数变量
- 字符转换功能 std::isupper() & std::islower() C++17
- 将字符 * 转换为字符串 *
- 在编译时将常量字符* 转换为常量 char_type*
- 如何在 C/C++ 中将无符号字符*转换为无符号字符数组?
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 无法使用字符串流将字符转换为字符串C++
- 将无符号字符 C++ 转换为 C#
- C++:使用没有位移位的指针将无符号字符转换为无符号 int
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- 无法<string>从"常量字符 []"转换为<类名>
- 不能将字符转换为整数吗?
- 编译时将字符*转换为字节
- CP1251:从字符* 转换为 wchar_t* 时的编码失真
- 将单个字符转换为 std::string 前缀 \x01
- PPM 将字符转换为 int 授予负数
- 通过像printf这样的可变参数函数传递一个带有常量字符*转换函数的类
- 将常量字符* 转换为字符时出错