C++文件操作

文件和流

打开文件
要在 C++ 中进行文件处理,必须在 C++ 源代码文件中包含头文件 和 。
istream是输入流类,cin就是istream类型的对象;
ostream是输出流类,cout是ostream类型的对象。
在这里插入图片描述

数据类型描述
ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。
ifstream该数据类型表示输入文件流,用于从文件读取信息。
fstream该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。

打开文件
在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。
下面是 open() 函数的标准语法,open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。

void open(const char *filename, ios::openmode mode);

在这里,open() 成员函数的第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式。

模式标志描述
ios::app追加模式。所有写入都追加到文件末尾。
ios::ate文件打开后定位到文件末尾。
ios::in打开文件用于读取。
ios::out打开文件用于写入。
ios::trunc如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。

打开文件

ifstream infile;
infile.open(“C:\\myfile.txt"); //与这个文件建立关联
ofstream outfile;
outfile.open(“myoutfile.txt”);

读写文件

Std::string str;
 /*从文件流中输入,可以看出和标准输入输出流的读取是一样的,使用流提取和流插入运算符,在这里是从infile所关联的文件中提取一个
 字符串存储到str中。*/
Infile>>str;
Outfile<<str; //将str所存储的字符写入到这个文件中

关闭文件

Infile.close();
Outfile.close();  //关闭后释放文件对象,取消与文件的关联。

定义fstream对象后,既可以对文件读又可以写。因此在open时需要给定打开的方式:

fstream  file1,file2;//定义了两个文件类的对象
file1.open(“file1.txt”,  ios::in);//用于输入,in和out为枚举值
pile2.open(“file2.txt”, ios::out);//用于输出

在open时常常会因为文件不存在,或正在被占用而打开失败。可以通过对文件对象进行判断来得知是否打开成功。

file1.open(“file.txt”, ios::in);
    if(!file1)
    { 
      //文件打开失败。
    }

有一个约定:
1)在打开文件进行读时,若文件不存在则打开失败;
2)写时,若文件不存在则新建一个文件。若存在则删除原来的文件的内容。
实例,实现两个文本文件的拷贝—1

#include<iostream>
#include<fstream>
using namespace std;
 
int main()
{
ifstream infile;  //定义一个用来读取文件内容的对象
ofstream outfile;   //定义一个用来写入文件内容的对象
infile.open("D:\\test.txt");  //将对象与文件关联,以后该对象的操作就与该文件有关,指定了文件的路径
outfile.open("D:\\test_copy.txt");  //新写入文件的名字
if(!infile || !outfile)  //打开两个文件成功,如果有一个失败,就输出打开失败
{
cout<<"openfile failed!"<<endl;
return 0; //文件打开失败直接退出
}
char ch;
while(infile.get(ch))  //从test中读取字符,如果读取到文件的末尾或者读取失败,就返回false,退出循环
{
cout<<ch;  //输出这些字符
outfile.put(ch);  //将这些字符写入到test_copy中
}
 
infile.close();  //关闭对象与文件的关联,释放资源
outfile.close();
   return 0;
}

读取 & 写入实例–2
下面的 C++ 程序以读写模式打开一个文件。在向文件 afile.dat 写入用户输入的信息之后,程序从文件读取信息,并将其输出到屏幕上:

#include <fstream>
#include <iostream>
using namespace std;
 
int main ()
{
    
   char data[100];
 
   // 以写模式打开文件
   ofstream outfile;
   outfile.open("afile.dat");
 
   cout << "Writing to the file" << endl;
   cout << "Enter your name: "; 
   cin.getline(data, 100);
 
   // 向文件写入用户输入的数据
   outfile << data << endl;
 
   cout << "Enter your age: "; 
   cin >> data;
   cin.ignore();
   
   // 再次向文件写入用户输入的数据
   outfile << data << endl;
 
   // 关闭打开的文件
   outfile.close();
 
   // 以读模式打开文件
   ifstream infile; 
   infile.open("afile.dat"); 
 
   cout << "Reading from the file" << endl; 
   infile >> data; 
 
   // 在屏幕上写入数据
   cout << data << endl;
   
   // 再次从文件读取数据,并显示它
   infile >> data; 
   cout << data << endl; 
 
   // 关闭打开的文件
   infile.close();
 
   return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dev C++是一个集成开发环境(IDE),用于C和C++编程。它提供了许多功能和工具,包括文件操作。下面是一些关于Dev C++文件操作的介绍: 1. 打开文件:使用`fopen`函数可以打开一个文件。例如,要打开一个名为"example.txt"的文本文件,可以使用以下代码: ```c FILE *file = fopen("example.txt", "r"); ``` 这将返回一个指向文件的指针。 2. 关闭文件:使用`fclose`函数可以关闭一个已打开的文件。例如,要关闭之前打开的文件,可以使用以下代码: ```c fclose(file); ``` 3. 读取文件内容:使用`fscanf`函数可以从文件中读取内容。例如,要从文件中读取一个整数,可以使用以下代码: ```c int num; fscanf(file, "%d", &num); ``` 4. 写入文件内容:使用`fprintf`函数可以向文件中写入内容。例如,要向文件中写入一个字符串,可以使用以下代码: ```c fprintf(file, "Hello, World!"); ``` 5. 检查文件结尾:使用`feof`函数可以检查是否已到达文件的结尾。例如,要检查是否已到达文件的结尾,可以使用以下代码: ```c if (feof(file)) { printf("已到达文件结尾\n"); } ``` 6. 检查文件是否成功打开:在打开文件时,可以检查返回的文件指针是否为NULL,以确定文件是否成功打开。例如,可以使用以下代码: ```c if (file == NULL) { printf("无法打开文件\n"); } ``` 这些是Dev C++文件操作的基本介绍。你可以使用这些函数来读取和写入文件内容。如果你有其他关于Dev C++文件操作的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值