在 C++ 中,fstream 库(或任何库)中是否有一个函数允许我在不提取的情况下读取一行到 '\n' 的分隔符?
我知道 peek() 函数允许程序在不提取的情况下“窥视”它读取的下一个字符,但我需要一个类似 peek() 的函数来做到这一点,但要针对整行。
在 C++ 中,fstream 库(或任何库)中是否有一个函数允许我在不提取的情况下读取一行到 '\n' 的分隔符?
我知道 peek() 函数允许程序在不提取的情况下“窥视”它读取的下一个字符,但我需要一个类似 peek() 的函数来做到这一点,但要针对整行。
您可以使用 和 的组合来做到这getline
一点。tellg
seekg
#include <fstream>
#include <iostream>
#include <ios>
int main () {
std::fstream fs(__FILE__);
std::string line;
// Get current position
int len = fs.tellg();
// Read line
getline(fs, line);
// Print first line in file
std::cout << "First line: " << line << std::endl;
// Return to position before "Read line".
fs.seekg(len ,std::ios_base::beg);
// Print whole file
while (getline(fs ,line)) std::cout << line << std::endl;
}