我必须在无符号短数组中输入一个字符串。
这是我的实施:
unsigned short strFile [ 200 ] = {0};
cin >> strFile;
我已添加iostream.h
标题。
但我总是收到错误:
错误C2678:二进制'>>' :找不到哪个运算符带有'std :: istream'类型的左手操作数
有人知道我该怎么解决这个问题?
答案 0 :(得分:3)
没有任何类型的字符串与unsigned short[]
兼容。
有一个普通的字符串是char []
(在C ++中你应该总是将它保存在string
除了常量!)和宽字符串,即wchar_t[]
(在C ++中你应该总是保留在wstring
)。 C ++ 11添加了char16_t
和char32_t
及其对应的u16string
和u32string
。
您可以从普通输入流中读取普通字符串,例如cin
。您可以从 wide 输入流中读取宽字符串,例如wcin
。
wchar_t
曾经是C中unsigned short
的typedef,但C ++要求它是一个单独的类型。 ISO / IEC
14882:2003 3.9.1 / 5:
类型
wchar_t
是一种不同的类型,其值可以表示支持的语言环境(22.1.1)中指定的最大扩展字符集的所有成员的不同代码。