C ++ cin.getline只读取一个字符

时间:2012-09-22 07:22:01

标签: c++ getline cin

我正在使用Xcode 4.5,我的程序中有以下代码:

char strChar[5];
cin.getline(strChar, 5);
int i = atoi(strChar);

当我开始尝试输入一个数字时,在按下第一个数字后,控制台将不再接受任何输入(除了输入键,在这种情况下程序只是立即返回零)。显然,我想接受不止一个角色,我该如何做到这一点?

感谢您回答我的问题

3 个答案:

答案 0 :(得分:2)

如果你想读一行,可能更容易编写:std :: getline(std :: cin,str),其中str的类型为std :: string。 您的示例只读取5个字符。

注意:如果你想要的不只是1个数字,而是多行中的一堆数字,你应该将它们全部放入循环中。

答案 1 :(得分:2)

*******更新*********** 10/04/2012 *********

APPLE已发布修正此问题的最新消息。 XCODE 4.5.1(4G1004)

这是Xcodes最新版本(4.5)中的一个已知错误。 Apple了解它并正在开发补丁。目前截至发稿时,尚无已知的工作。现在你只需要在终端中运行程序。

**请注意,在较新版本的Xcode中,命令行工具未自动安装**  安装进入Xcode - >偏好 - >下载 - > 安装命令行工具

在终端中运行C ++程序:

1。)打开终端。

2。)导航到正确的目录

3。)键入“make projectName”减去引号

4。)执行程序:“./ projectName”减去引号

答案 2 :(得分:1)

只是一个注释:你的代码没有将字符串读入“str”,只是“strChar”。