📜  getline of file C++ (1)

📅  最后修改于: 2023-12-03 14:41:23.748000             🧑  作者: Mango

C++中的getline函数

简介

在 C++ 中,getline 函数通常用于从文件或数据流中读取一行字符,直到遇到 '\n' 或者 EOF。该函数的参数包括了文件输入流或数据输入流的对象,以及一个保存文本的字符串。

语法

函数的语法如下所示:

istream& getline (istream& is, string& str, char delim);

其中:

  1. is:文件输入流或数据输入流的对象。
  2. str:一个保存字符串的变量,读取到的一行字符将被存储在该变量中。
  3. delim:可选参数,用于指定分隔符。默认值为字符 '\n',也就是读取到换行符时停止读取。
代码演示

以下是一个使用 getline 函数从文件中读取一行字符的示例:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main () {
  string line;
  ifstream myfile ("example.txt");  // 打开文件
  if (myfile.is_open()) {  // 判断文件是否打开成功
    while ( getline (myfile,line) ) {  // 逐行读取文件内容
      cout << line << '\n'; // 输出读取到的行内容
    }
    myfile.close();  // 关闭文件
  }
  else cout << "Unable to open file";  // 打开失败则输出错误信息
  return 0;
}

在该示例中,我们首先打开 example.txt 文件,并使用 while 循环逐行读取文件内容,将每行字符存储在变量 line 中,并输出到控制台上。最后,我们使用 close 函数关闭文件。如果文件打开失败,则输出错误信息。

注意事项

在使用 getline 函数时,需要注意以下几点:

  • 一次只能读取一行字符。
  • 该函数读取到 delim 分隔符时,不会将其添加到 str 变量中。
  • 如果文件读取完毕,eofbit 和 failbit 状态将被置位,此时需要使用 clear 函数清除错误状态。
  • 在使用 ifstream 对象并打开文件时,当前目录是该可执行文件所在的目录。因此,我们可以使用相对路径或绝对路径来打开文件。
参考文献
  • C++ Reference. getline. 链接