首页 /编程语言和算法/C/C++
 C++ 文件和流
2023年10月10日 23:00

iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。

本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:

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

要在 C++ 中进行文件处理,必须在 C++ 源代码文件中包含头文件 <iostream> 和 <fstream>。

打开文件 在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。

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

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

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


 
全部回复(1)
  • 引用1楼

    读写文件的代码:

    #include #include using namespace std;
    
    int main()
    {
    	char data[100];
    
    	// 以写模式打开文件
    	ofstream outfile;
    	outfile.open("my-file.txt");
    
    	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("my-file.txt");
    
    	cout << "Reading from the file" << endl;
    	infile >> data;
    
    	// 在屏幕上写入数据
    	cout << data << endl;
    
    	// 再次从文件读取数据,并显示它
    	infile >> data;
    	cout << data << endl;
    
    	// 关闭打开的文件
    	infile.close();
    
    	return 0;
    }

    运行结果:

    Writing to the file
    Enter your name: 码农库 (这是我输入的)
    Enter your age: 23(这是我输入的)
    Reading from the file
    码农库
    23

    my-file.txt 这个文件会出现在当前exe的目录中。也可以修改成c:\\my-file.txt这种模式,打开是ANSI格式。

  • 首页 | 电脑版 |