在C++中,fstream库(或任何库)中是否有一个函数可以让我读取到'\n'分隔符而不进行提取操作?
我知道peek()函数可以让程序查看下一个要读入的字符而不进行提取,但我需要类似于peek()函数的功能,但是用于整行读取。
我知道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;
}