使用std :: cin的奇怪字符

时间:2015-08-04 13:01:47

标签: c++ xcode

我一直在OSX Yosemite下使用Xcode 6.3.2在C ++中开发应用程序,每当我要求操作员输入带有下面代码的参数时,它都可以正常工作,除非在某些时候操作员在输入时输错了并使用键盘上的箭头更正其输入。如果他这样做,这就是他得到的输出:

Please enter the name of the object : test
You entered : test

以下是代码:

#include <iostream>
using namespace std;

int main( int argc, char** argv )
{
    char *object_name = new char [20];
    cout << "\nPlease enter the name of the object : ";
    cin >> object_name;
    cout << "You entered : " << object_name;
}

关注@awesomeyi和@NathanOliver,我现在正在使用std :: string,但我仍然遇到同样的问题。

这是新代码:

#include <iostream>
#include <string>
using namespace std;


int main( int argc, char** argv )

{
    string object_name;
    cout << "\nPlease enter the name of the object : ";
    cin >> object_name;
    cout << "You entered : " << object_name;
}

有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我刚尝试使用Mac上的El Capitan上最新版本的Xcode和Dev C ++版本5.9.2,显然使用Dev C ++将字符插入流中没有问题,但数字和插入的交换没有问题&#39;?&#39;字符在Xcode的输出流中很普遍。正如@NathanOliver所说,我试过了wcin。该问题似乎只存在于Xcode编译器中。