C++文件读取与写入
头文件
fstream // 文件流
ifstream // 输入文件流
ofstream // 输出文件流
文件打开方式
ios::app:以追加的方式打开文件
ios::ate:文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary:以二进制方式打开文件,缺省的方式是文本方式
ios::in:文件以输入方式打开(文件数据输入到内存)
ios::out:文件以输出方式打开(内存数据输出到文件)
ios::nocreate:不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc:如果文件存在,把文件长度设为0
文件写入(不追加,覆盖原文件)
//1、创建流对象fstream fs; //可输入输出//2、指定打开方式fs.open("test_A.txt", ios::out);//3、文件写入fs<<"abc"<<123;fs.close();
2、文件写入(追加,在原文件末尾写入)
//1、创建流对象fstream fs; //可输入输出//2、指定打开方式fs.open("test_A.txt", ios::out|ios::app);//3、文件写入fs<<"abc"<<123;fs.close();
3、文件读取
//1、创建流对象fstream fs; //可输入输出//2、指定打开方式fs.open("test_A.txt", ios::in);//3、文件读取(前面是字符串,后面是数字)String s; int num;while(fs>>s>>num) //文件读取至末尾{cout<<s<<" "<<num<<endl;}fs.close();
4、文件读取(按行读取)
//1、创建流对象fstream fs; //可输入输出//2、指定打开方式fs.open("test_A.txt", ios::in);//3、文件读取(前面是字符串,后面是数字)String line;while(getline(fs, line)) //文件读取一行,并按分隔符进行处理{//"123,456,789"int i1 = line.find(",");int i2 = line.find(",",len1+1);String s1 = line.substr(0,i1);String s2 = line.substr(i1+1,i2-i1-1);String s3 = line.substr(i2+1);//字符串转数字double d1 = my_atod(s1);double d2 = my_atod(s2);double d3 = my_atod(s3);cout<<d1<<" "<<d2<<" "<<d3<<endl;}fs.close();//包含头文件 #include double my_atod(string tempString){double result;stringstream ss;ss << tempString;ss >> result;return result;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!