c++进行文件读写,都是基于对象,即用一个对象去关联一个文件。然后对象里面有各种函数可以操作文件,最简单的就是open和close(打开文件和关闭文件)
其中open函数有很多参数可以选择,即文件打开方式
文件打开方式:
ios::in 打开文件进行读操作,即读取文件中的数据
ios::out 打开文件进行写操作,即输出数据到文件中
ios::ate 打开文件时文件指针指向文件末尾,但是你可以在文件中的任何地方写数据
ios::app 打开文件不会清空数据,文件指针始终在文件末尾,因此只能在文件末尾写数据
ios:trunc 默认,若打开文件已存在,测清空文件的内容
ios::nocreate 若打开文件不存在则不建立,返回打开失败信息
ios::noreplace 打开文件时不能覆盖,若文件存在测返回打开失败信息
ios::binary 打开文件为二进制文件,否则为文本文件
注:ate 是 at end 的缩写,trunc是truncate(截断)的缩写,app是append(追加)的缩写
其中在新的标准中ios::nocreate 改成了ios::_Nocreate
ios::noreplace改成了ios::_Noreplace
main.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream in;//创建一个文件输入流对象
in.open("K:\\file1.txt", ios::in | ios::_Nocreate);//文件输入流关联一个文件
fstream out;//创建一个文件输出流对象
out.open("K:\\file2.txt", ios::out | ios::_Nocreate|ios::trunc);
if(!in)
{
cout << "in error\n";
}
if (!out)
{
cout << "out error\n";
}
char ch;
while (in.get(ch))//从in关联的文件读取一个字符,如果没到文件结尾返回 1,否则返回 0
{
if (ch >= 'a' && ch <= 'z')
{
ch -= 32;//小写转换为大写
out.put(ch);//输出到out对象所关联的文件
continue;
}
out.put(ch);
}
in.close();//关闭输入流
out.close();//关闭输出流
system("pause");
return 0;
}
使用软件:vs2015