21xrx.com
2024-06-02 22:35:34 Sunday
登录
文章检索 我的文章 写文章
C++文件输入操作
2023-07-07 04:25:40 深夜i     --     --
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++字符串去重

评论区

{{item['qq_nickname']}}
()
回复
回复