- 浏览: 369868 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
转自:http://hi.baidu.com/songshu5555/blog/item/0d4281b47d1a627e8ad4b259.html
有时候用ifstream或ofstream打开带有中文路径的文件会失败。
解决办法:
1、使用C语言的函数设置为中文运行环境
setlocale(LC_ALL,"Chinese-simplified");
2、使用STL函数设置为系统语言环境
std::locale::global(std::locale(""));
当然选2啦!
ofstream writefile;
string filename=("d:\我的文档\测试.txt");
locale loc = locale::global(locale("")); //要打开的文件路径含中文,设置全局locale为本地环境
writefile.open(filename.c_str(),ios::out); //打开文件
locale::global(loc);//恢复全局locale
用locale对象的name方法可以看到,通过locale("")构造出的locale 对象的name为"Chinese_People's Republic of China.936",而原始的locale对象的name为"C",也就是缺省的ANSI_C公约。
注意:如果使用locale loc = locale::global(locale(""))设置全局locale后没有用 locale::global(loc)恢复的话,那么在程序后面的cout语句就不能输出中文了,虽然这时候操作中文文件没有问题,但是这也是很容易让 人掉入陷阱的地方,应该值得注意。解决方法:
先将CString 转为char*
CString str=view->m_sFilePath;
//CString str = "";
//ofstream 中传的参数不能有汉字,必须转换,一下是其暂缓方法
str.AppendFormat("cluster%d%d.txt",aMatrix->X_part,aMatrix->Y_part);
char* sz = str.GetBuffer(str.GetLength());
locale loc = locale::global(locale(""));
ofstream ofile(sz);
转载网友方法:
有时候用ifstream或ofstream打开带有中文路径的文件会失败。
解决办法:
1、使用C语言的函数设置为中文运行环境
setlocale(LC_ALL,"Chinese-simplified");
2、使用STL函数设置为系统语言环境
std::locale::global(std::locale(""));
当然选2啦!
ofstream writefile;
string filename=("d:\我的文档\测试.txt");
locale loc = locale::global(locale("")); //要打开的文件路径含中文,设置全局locale为本地环境
writefile.open(filename.c_str(),ios::out); //打开文件
locale::global(loc);//恢复全局locale
用locale对象的name方法可以看到,通过locale("")构造出的locale 对象的name为"Chinese_People's Republic of China.936",而原始的locale对象的name为"C",也就是缺省的ANSI_C公约。
注意:如果使用locale loc = locale::global(locale(""))设置全局locale后没有用 locale::global(loc)恢复的话,那么在程序后面的cout语句就不能输出中文了,虽然这时候操作中文文件没有问题,但是这也是很容易让 人掉入陷阱的地方,应该值得注意。解决方法:
先将CString 转为char*
CString str=view->m_sFilePath;
//CString str = "";
//ofstream 中传的参数不能有汉字,必须转换,一下是其暂缓方法
str.AppendFormat("cluster%d%d.txt",aMatrix->X_part,aMatrix->Y_part);
char* sz = str.GetBuffer(str.GetLength());
locale loc = locale::global(locale(""));
ofstream ofile(sz);
转载网友方法:
/* 方法1,使用_TEXT()宏定义将字符串常量指定为TCHAR*类型 这种情况下必须是unicode下 编译 */ /* 如果是我,首选此类型 */ /************************************************************************/ fstream file; file.open(_TEXT("c:\\测试\\测试文本.txt")); cout<<file.rdbuf(); file.close(); /************************************************************************/ /* 方法2,使用STL中的locale类的静态方法指定全局locale */ /* 使用该方法以后,cout可能不能正常输出中文,十分蹊跷 */ /* 我发现了勉强解决的方法:不要在还原区域设定前用cout或wcout 输出中文 */ /* 否则后果就是还原区域设定后无法使用cout wcout输出中文 */ /************************************************************************/ locale::global(locale(""));//将全局区域设为操作系统默认区域 file.open("c:\\测试\\测试文本2.txt");//可以顺利打开文件了 locale::global(locale("C"));//还原全局区域设定 cout<<file.rdbuf(); file.close(); /************************************************************************/ /* 方法3,使用C函数setlocale,不能用cout输出中文的问题解决方法同上 */ /************************************************************************/ setlocale(LC_ALL,"Chinese-simplified");//设置中文环境 file.open("c:\\测试\\测试文本3.txt");//可以顺利打开文件了 setlocale(LC_ALL,"C");//还原 cout<<file.rdbuf(); file.close(); }
发表评论
-
FreeRTOS
2022-03-05 16:31 248Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 411https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1325https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 477https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 574// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 580https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5738583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 600参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2155基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9061 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1582OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1881ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 871转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1908转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1086C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 969转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 991转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 810参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1612转自 http://blog.csdn.net/weixinh ...
相关推荐
标题提到了 `ofstream` 和 `ifstream` 的基本用法,这在Visual C++ (VC) 环境中非常常见。`ofstream` 主要用于向文件写入数据,而 `ifstream` 则用于从文件中读取数据。 ### 描述详解:VC中的文件读入读出的基本...
在Microsoft Visual C++ 6.0(简称VC6.0)这个经典的开发环境中,程序员经常需要处理文件操作,其中一种常见的任务就是逐行读取文本文件。本文将深入讲解如何在VC6.0中实现这一功能,以及相关的重要知识点。 首先,...
有两种主要的方法来实现:使用`ifstream`(输入文件流)进行读取和`ofstream`(输出文件流)进行写入。 1. **打开文件**: 在VC中,你需要创建一个`ifstream`对象并调用其`open()`函数来打开TXT文件。例如: ```...
在C++中,文件输入输出(I/O)是通过标准库中的stream类及其派生类来实现的,主要涉及到了ofstream和ifstream两个类,用于分别实现从内存到硬盘的写入操作(ofstream),以及从硬盘到内存的读取操作(ifstream)。...
2. **文件I/O操作**:在VC++中,使用`ifstream`和`ofstream`类来读取和写入文件,掌握二进制和文本模式的区别。 3. **数据解析**:解析DXF文件的ASCII文本,可能需要自定义解析器或者利用第三方库如CADLib。 4. **...
在VC++环境中,读取和显示TXT文件的内容是一项常见的任务,尤其在进行文本处理或数据分析时。本篇文章将深入探讨如何使用C++编程语言(在Visual C++环境下)实现这一功能,具体涉及到的知识点包括文件操作、字符串...
在VC++(Visual C++)开发环境中,进行文件读取是一项基本操作,这对于任何程序员来说都是必不可少的技能。本文将详细讲解在VC++中如何进行文件读取,适合初级学者入门学习。 首先,我们有两种主要的文件读取方式:...
`ifstream`类用于读取文件,而`ofstream`类用于写入文件。首先,你需要包含这个头文件: ```cpp #include ``` 2. **打开文件**: 使用`ifstream`对象的`open()`函数打开文件。你需要提供文件路径和打开模式,...
在VC++编程环境中,读取TXT文件并根据其中的数据生成曲线是一项常见的任务,尤其是在数据分析和图形可视化中。本文将详细讲解如何实现这个过程,重点包括读取TXT文件、解析数据、保存坐标以及在客户区绘制曲线。 ...
在C++编程中,处理文本文件的读写是常见的任务之一。TXT文件是最简单的文本文件格式,通常用于存储纯文本信息。然而,在处理不同编码格式的TXT文件时,尤其是涉及到UTF-8编码时,可能会遇到乱码问题。下面将详细讨论...
`fstream`类提供了读取和写入文件的能力,包括`ifstream`用于读取文件和`ofstream`用于写入文件。以下是一个简单的示例,展示如何使用`ifstream`逐行读取文本文件: ```cpp #include #include #include int ...
在VC++环境中,读取、显示以及保存图像是一项常见的任务,尤其在图形用户界面(GUI)应用程序开发中。本教程将详细介绍如何使用VC++和BMP图像格式来实现这一功能。BMP是一种位图文件格式,它直接存储像素数据,非常...
在本主题中,我们将深入探讨如何使用C++编程语言从TXT文本文件中读取矩阵数据。C++是一种强大且灵活的编程语言,广泛应用于系统软件、应用软件、游戏引擎、设备驱动程序等领域。在处理科学计算和数据分析时,读取和...
它提供了`ifstream`类用于读取文件,`ofstream`类用于写入文件,以及`fstream`类同时支持读写。要逐行读取TXT文件,我们需要使用`ifstream`。 2. 打开文件:首先,我们需要创建一个`ifstream`对象,并调用其`open()...
在VC语言中,我们可以使用ofstream和ifstream类来实现文件的读取和写入。ofstream类用于文件的写入,而ifstream类用于文件的读取。例如: ```cpp ofstream outfile("f:\\f1.dat",ios::out|ios::in); ifstream in...
在VC.NET中,解析文件名、扩展名以及文件路径是一项基本操作,对于任何涉及文件处理的项目都至关重要。本文将详细讲解如何在VC.NET环境下利用C++语言进行这些操作,并结合给定的"VC.Net 解析文件名、扩展名及文件...
本示例着重讲解如何使用C++编程语言在VC6.0中实现这一功能,以便读取指定文件夹中的文件,并将内容按特定格式存储到字符串数组中。这个功能在初始化程序、数据载入或日志记录等场景下非常实用。 首先,我们需要包含...
在VC++编程环境中,将数据保存到TXT文件以及从TXT文件读取数据是常见的操作,尤其是在处理简单文本记录或日志记录时。本教程将详细解释如何实现这一过程。 首先,我们需要了解基本的文件操作概念。在C++(包括VC++...
在这个“VC 源码:操作TXT文本并独立读写存储文件.rar”中,包含了一个示例项目,它演示了如何在Windows环境下使用C++进行文本文件的读写操作,并且通过窗体界面增强用户体验。 首先,我们来看文件操作的基本概念。...
在VC环境下,文件操作通常涉及到C++标准库中的fstream库,包括ifstream(输入文件流)和ofstream(输出文件流)。在这个例子中,开发者首先会打开TXT文件,逐行读取内容,然后写入到DAT文件中。转换过程中,可能涉及...