如何在c++中将字符转换为整数

how to convert a character to an integer in C++?

本文关键字:字符 转换 整数 c++      更新时间:2023-10-16

如何在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将字符串转换为整数:

http://linux.die.net/man/3/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之间的单位数整数