在C ++中将字符串输入到无符号短数组中

时间:2012-10-09 10:47:01

标签: c++

我必须在无符号短数组中输入一个字符串。

这是我的实施:

unsigned short strFile [ 200 ] = {0};
cin >> strFile;

我已添加iostream.h标题。

但我总是收到错误:

  

错误C2678:二进制'>>' :找不到哪个运算符带有'std :: istream'类型的左手操作数

有人知道我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:3)

没有任何类型的字符串与unsigned short[]兼容。

有一个普通的字符串是char [](在C ++中你应该总是将它保存在string除了常量!)和宽字符串,即wchar_t[](在C ++中你应该总是保留在wstring)。 C ++ 11添加了char16_tchar32_t及其对应的u16stringu32string

您可以从普通输入流中读取普通字符串,例如cin。您可以从 wide 输入流中读取宽字符串,例如wcin

wchar_t曾经是C中unsigned short的typedef,但C ++要求它是一个单独的类型。 ISO / IEC 14882:2003 3.9.1 / 5:

  

类型wchar_t是一种不同的类型,其值可以表示支持的语言环境(22.1.1)中指定的最大扩展字符集的所有成员的不同代码。