关于宽字符
来源:互联网 发布:希尔排序算法如何稳定 编辑:程序博客网 时间:2024/04/29 15:20
这几天在网上查了好多东西,就是为了明白款字符输入输出流的使用,总算还有点收获,
1) 宽字符输出:
#include <iostream>
#include <string>
#include<fstream>
#include<locale>
using namespace std;
void main(){
wstring ws = L"我a1.txt"; //定义生成的文件名
wstring wContent =L"/n中文测试aa121"; //定义宽字符串,用来输出的文件
wofstream wfs; //宽字符输出流
wfs.open(ws.c_str(),ios_base::app|ios_base::binary); //打开文件,
wfs.imbue(std::locale("chs")); //设置输出流的imbue属性很重要
wfs<<wContent<<"/n/r"; //将字符串输出
wfs<<ws<<"/n/r"; //输出换行,回车,但是显示的是乱码,
wfs.close(); //关闭流
int a; //防止像在vc.net2005中那样控制台一闪而过;此处没什么用处
cin>>a;
}
2) 读取:
#include <iostream>
#include <string>
#include <fstream>
#include <locale>
using namespace std;
#ifndef _UNICODE
#define _UNICODE //定义_UNICODE
#endif
#ifndef UNICODE
#define UNICODE //定义UNICODE
#endif
int main(void)
{
locale loc("chs"); //定义locale对象,用来设置输入流的imbue()
wifstream file; //定义输入流
file.imbue(loc); //使用locale对象loc来设置款字符输入流的imbue();这个要在打开文件之前设置
file.open("test.txt", ios::binary); //打开文件
if (!file.is_open())
{
cerr << "file open error." << endl; //文件如果没有打开,输出错误提示并返回
return -1;
}
wstring line; //定义wstring对象,临时保存从文件中读取的字符串
int line_num=0; //统计读取的行数
wofstream file2; //输出流,将保存在line中的字符串输出
file2.imbue(loc); //设置file2的imbue();,要在打开文件之前设置
file2.open("test3.txt", ios::binary); //打开文件
file2 << "/0xFEFF"; //暂时还不知道啥意思这里,不过好像去掉了生成的文件还是可以用这个main方法来读取
wcout.imbue(loc); //设置wcout的imbue();
while (!file.eof()) //开始读取,并输出到文件
{
line=L""; //赋值前先将line置空
file >> line;
wcout << line << endl; //输出到控制台
file2 << line << endl; //输出到文件
}
file.close();
file2.close(); //关闭两个流
int a;
cin>>a; //防止控制台一闪而过
return 0;
}
这里还有好多我不明白的地方,只是找了好久有没有找到一个能将一下使用wifstream/wofstream输入输出的文章或者帖子,我就发一个,以作抛砖引玉之用,大家可以共同学习
- 关于宽字符
- 关于宽字符
- 关于C++字符 以及编码 宽字符
- 关于宽字符和窄字符
- 关于字符
- 关于字符
- 关于unicode,宽字符的问题
- 关于宽字符wchar_t(标记下)
- 关于宽字符类型的测试
- 关于字符编码问题
- 关于TAB字符问题
- 关于字符编码问题
- 关于字符编码
- 关于字符编码
- 关于转义字符
- 关于字符编码
- 关于标题字符截取
- 关于字符指针
- 80年代后的亿万富翁
- minicom使用简介
- 一个实现将动态页面转为静态的方案
- 防止数据被采集的最终解决方法
- 程序员成功之路
- 关于宽字符
- JAVA的JSP中生成静态页面技术解决方案系列(一,二)(转帖)
- 在SQL SERVER中获取系统生成的标识值
- Hibernate中多表关联查询(csdn摘记)
- FC6安装后的其它配置
- Hibernate查询语言HQL
- SciTE 文档 - 1
- ASP中按钮触发事件
- asp.net不能debug解决办法