-1

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

这是我的实现:

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

我已经包括了iostream.h标题。

但我总是得到一个错误:

错误 C2678:二进制“>>”:未找到采用“std::istream”类型的左侧操作数的运算符

任何人都知道我应该如何解决这个问题?

4

1 回答 1

3

没有一种字符串可以与unsigned short[].

有普通的字符串char [](在 C++ 中,string除了常量外,你应该始终将其保留在其中!)和宽字符串,即wchar_t[](在 C++ 中,您应该始终将其保留在 中wstring)。并且 C++11 增加了char16_tandchar32_t和它们对应的u16stringand u32string

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

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

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

于 2012-10-09T10:49:19.070 回答