用ifstream 或 ofstream 打开带有中文路径的文件会失败。 主要问题在于系统语言环境,解决办法如下: std::locale loc = std::locale::global(std::locale(""));//设置全局locale为本地环境std::ifstream _in("D:\\Program Files\\中文字符\\text.db");interror =0;if(!_in.is_open()) { error = ::...
问题1:中文路径问题导致文件打开失败。 通常是因为在调用fstream的open方法时,系统内部调用mbstowcs_s进行文件名转换,而mbstowcs_s依赖于程序的本地化设置(locale系列函数设置)。 程序启动时默认设置为LC_ALL="C"。而要正确打开中文文件名的文件,需要设置为LC_ALL="chinese"。 具体可以参见http://blog.csdn.net/su...
ofstream ,而 infile 是 ifstream )。在这种情况下, outfile.fail() 的值是否正确? 示例代码(摘自unapersson答案的注释,经过简化以使问题更清晰-zack): #include <fstream> using std::ofstream; int main() { ofstream outfile; outfile.open(\"test.txt\"); if (outfile.fail()) // do something... ...
intoutput_mag(std::ofstream& ofile){// check calling of routine if error checking is activatedif(err::check==true){std::cout<<"grains::output_mag has been called"<<std::endl;}// calculate grain magnetisationsgrains::mag();if(vmpi::my_rank==0){// check file stream is openif(!o...
另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了: fstream file1("c:\\config.sys"); 特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。ifstream file2("c:\\pdos....
(返回与失败方法返回的值相反的值)。 std::ofstream File("Cannotcreate"); if(!File.is_open()){ std::cerr << "error opening \n"; } 另一个示例是调用 is_open 方法并仅检查文件是否打开。给定的方法不会对流的内部状态进行任何检查,而仅用于检查是否存在关联文件。 如果您只是检查文件是否打开,...
一、文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二、打开文件 说明了流对象之后,可使用函数open()打开文件。文件的打开即是在流与文件之间建立一个连接 函数原型
if(! in.is_open()) { cout << "Error opening file"; exit (1); } while(!in.eof() ) { in.getline (buffer,100); cout << buffer << endl; } return0; } //结果 在屏幕上输出 This is a line. This is another line 上面的例子读入一个文本文件的内容,然后将它打印到屏幕上。注意我们...
bool is_open( ) const; 傳回值 true ,如果檔案是開啟的,則為 false 。 備註 成員函式傳回rdbuf->is_open。 範例 // basic_ofstream_is_open.cpp // compile with: /EHsc #include <fstream> #include <iostream> int main( ) { using namespace std; ifstream file; // Open and close with a ...
open函数和is_open函数用法与filebuf类基本一致,这里不再多说,主要是close,我们可以看到它调用失败以后,会将当前流状态置为失败,所以标准的做法,还是显式的调用一下close函数比较好。 2.4 ofstream类和fstream类 ofstream用于往文件写入数据,除了构造和调用open函数的时候,默认的打开模式是ios_base::out,其他所有函数...