21xrx.com
2025-03-22 18:11:05 Saturday
文章检索 我的文章 写文章
C++文件输入操作
2023-07-07 04:25:40 深夜i     9     0
C++ 文件输入 操作

C++是一种强大的编程语言,它可以在各种环境下使用。其中,文件操作是C++中极其常用的一种操作。在C++中,可以使用输入输出流来进行文件操作。本文将重点介绍C++文件输入操作。

C++文件输入操作的基本流程是:打开文件、读取文件内容、处理文件内容、关闭文件。

打开文件

C++使用fstream库来进行文件操作,其中包括ifstream和ofstream两个类。其中,ifstream用于读取文件内容,ofstream用于写入文件内容。

打开文件时,需要先创建一个流对象,指定文件名和文件打开模式。其中文件打开模式有以下几种:

- ios::in   打开文件进行读取操作

- ios::out  打开文件进行写入操作

- ios::app  在文件末尾添加数据

- ios::binary 以二进制方式打开文件

- ios::ate  打开文件后定位到文件末尾

例如,下面的代码打开了一个名为input.txt的文件,并设定文件打开模式为ios::in:

#include <fstream>
#include <iostream>
using namespace std;
int main(){
  ifstream file; //创建流对象
  file.open("input.txt", ios::in);
  if(!file.is_open())
    cout << "文件打开失败!" << endl;
 
  else
    cout << "文件打开成功!" << endl;
 
  file.close(); //关闭文件
  return 0;
}

读取文件内容

文件打开成功后,就可以读取文件内容了。C++提供了多种方法来读取文件内容,包括逐行读取、按字符读取、按单词读取等。

逐行读取

逐行读取是一种比较常见的读取方式,可以使用getline()函数来实现。getline()函数需要两个参数,第一个参数是文件流对象,第二个参数是一个字符串变量,表示读取到的一行内容。

例如,下面的代码演示了如何使用getline()函数逐行读取文件内容:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main(){
  ifstream file; //创建流对象
  string line;
  file.open("input.txt", ios::in);
  if(!file.is_open())
    cout << "文件打开失败!" << endl;
 
  else{
    cout << "文件打开成功!" << endl;
    while(getline(file, line))
      cout << line << endl;
   
  }
  file.close(); //关闭文件
  return 0;
}

按字符读取

按字符读取可以使用get()函数来实现。get()函数有两种形式,可以不带参数或者带一个char类型的参数。当不带参数时,get()函数会从文件流中读取一个字符,并返回该字符的ASCII码。当带一个char类型的参数时,get()函数会将读取到的字符赋值给该参数。

例如,下面的代码演示了如何使用get()函数按字符读取文件内容:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main(){
  ifstream file; //创建流对象
  char ch;
  file.open("input.txt", ios::in);
  if(!file.is_open())
    cout << "文件打开失败!" << endl;
 
  else{
    cout << "文件打开成功!" << endl;
    while(file.get(ch))
      cout << ch;
   
  }
  file.close(); //关闭文件
  return 0;
}

按单词读取

按单词读取可以使用>>运算符来实现。>>运算符会将文件中每一个由空格分隔的单词读取出来,并分别赋值给后面的变量。需要注意的是,如果该单词长度超过了变量的长度,则会截取该单词的前面部分,并将其赋值给变量。

例如,下面的代码演示了如何使用>>运算符按单词读取文件内容:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main(){
  ifstream file; //创建流对象
  string word;
  file.open("input.txt", ios::in);
  if(!file.is_open())
    cout << "文件打开失败!" << endl;
 
  else{
    cout << "文件打开成功!" << endl;
    while(file >> word)
      cout << word << endl;
   
  }
  file.close(); //关闭文件
  return 0;
}

处理文件内容

读取到文件内容后,就可以对文件内容进行一些处理了。例如,可以根据需要进行统计、排序、过滤、转换等操作。

关闭文件

处理完文件后,需要关闭文件,以释放文件资源。可以使用close()函数来关闭文件。如果不关闭文件,可能会导致文件被其他程序占用,无法进行操作。

例如,下面的代码演示了如何关闭文件:

#include <fstream>
#include <iostream>
using namespace std;
int main(){
  ifstream file; //创建流对象
  file.open("input.txt", ios::in);
  //读取文件内容...
  file.close(); //关闭文件
  return 0;
}

在C++中,文件输入操作是非常常用的操作之一。掌握了文件输入操作,可以更方便地处理文本文件,使程序更加灵活有力。

  
  
下一篇: C++字符串去重

评论区