从用户输入c ++ char到int

时间:2014-03-09 19:42:19

标签: c++ string int

我正在读取2个坐标的用户输入,如下所示:

输入coord:10 5

我希望能够在10中读取行,将5作为列。

这就是我所拥有的。

  char coord[5];

  ...

  cout << "Enter a coord: ";
  cin.getline(coord,sizeof(coord));
  row = atoi(coord[0]);

所以代码在atoi()上给我一个错误,如果用户输入一个像10个字符的数字无法真正从索引读取它,你们会怎么做?感谢。

1 个答案:

答案 0 :(得分:5)

嗯,您实际上可以使用int来表示坐标变量,并按以下方式读取它们:

int row;
int column;
std::cout << "Enter a coord: ";
std::cin >> row >> column;
std::cout << "Coords: " << row << " " << column << std::endl;

从你的错误开始:你在atoi上收到一个错误,因为它获得const char *str作为参数,并且当你使用一个char数组时,你需要像{{1}那样传递它因为数组是implicity converted a pointer to the first array element(通常被称为“衰变”到指针,因为当你以这种方式传递给函数时,你就失去了对项目调用int row = atoi(coord); // which will read only the first value的能力)。