读书人

C++中处理汉字的有关问题

发布时间: 2012-02-29 16:44:10 作者: rapoo

C++中处理汉字的问题
请问一下,C++中处理汉字,用的是wchar_t 和 wcout 吧?
#include <iostream>
#include <locale>
using namespace std;
int main( void )
{
locale loc( "chs " );
wcout.imbue( loc );
wcout < < L "中国 " < < endl;

return 0;
}
但提示wcout undeclared ????? 是因为dev_c++中没有吗?
还有如果要从一个即有汉字又有英语的文件中读取信息时,应该怎么存储呢?
输出时该怎么区别对待呢?
谢谢

[解决办法]
devcpp不支持wcout,换vc2005.
hash不会对你有太大帮助,用map即可。
[解决办法]
使用 char 和cout一样可以
[解决办法]
wcout 是 VC 中的东东,
不是标准定义的
[解决办法]
难得看见jixingzhong(瞌睡虫星辰) 也说错一次。
C++ Primer 3e中文版P871
[解决办法]
还有如果要从一个即有汉字又有英语的文件中读取信息时,应该怎么存储呢?
输出时该怎么区别对待呢?

如果不是必须,
你可以偷懒一点,
只是按照 ANSI 编码操作, 而不是 Unicode,
这样,对于汉字读取, 每次操作两个字符,
而对于 英文, 每次操作 一个字符即可。

比如每次读两个字符,
判断第一个字符的大小就可以了 ...
[解决办法]
或者参见,多字节函数库系列:文件读取
http://cosoft.org.cn/snippet/detail.php?type=snippet&id=4566
[解决办法]
20.8 节将详细介绍iostream 字符串对象
在实践中iostream 支持两种预定义的字符类型char 和wchar_t 目前我们所描述的
iostream 类以及我们在本章余下部分要关注的读写的是char 型的流与此互补的是另外
一组支持wchar_t 型的iostream 对象和类每个类与类对象都加了前缀w 以便与相应的
char 型区分开因此wchar_t 标准输入被命名为wcin 标准输出为wcout 以及标准错误
wcerr 然而char 和wchar_t 型的stream 类和类对象所需要的头文件是相同的
wchar_t 输入和输出类是wistream wostream 和wiostream 文件输入和输出类是
wifstream wofstream 和wfstream iostream 字符串输入输出类是wistringstream wostringstream
以及wstringstream.

呵呵, 谢 taodm 指点了 ...
不过, 这个在 P 881 页 嘿嘿 ...

貌似在 Dev C++ 中没有 wiostream ...
所以, 还是不要使用 wcout 了 ...

读书人网 >C++

热点推荐