C++에서 fstream 라이브러리 (또는 임의의 라이브러리)에 함수를 추출하지 않고 '\ n'의 단락 기호를 읽을 수있는 함수가 있습니까?C++ 함수를 추출하지 않고 라인을 읽는 fstream 함수?
peek() 함수는 프로그램이 추출하지 않고 다음 문자를 읽을 때 'peek'을 허용한다는 것을 알고 있지만 전체 행에서는 peek() 함수처럼 필요합니다.
C++에서 fstream 라이브러리 (또는 임의의 라이브러리)에 함수를 추출하지 않고 '\ n'의 단락 기호를 읽을 수있는 함수가 있습니까?C++ 함수를 추출하지 않고 라인을 읽는 fstream 함수?
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;
}
감사합니다 Kleist이 방법은 완벽하게 작동합니다! 그래서 나는 라인을 읽는 함수처럼 peek()이 없다고 가정한다. – SexyBeastFarEast
사실, 그러한 peek-function은 없습니다. – Kleist
사용 사례는 무엇입니까? XY 문제처럼 들립니다. –
그것의 텍스트 파일을 읽고 그 다음 값이 sentential 문자열인지 아닌지를 결정하기 위해 peek() 함수를 사용하고 싶습니다. 아래의 방법은 완벽하게 내 문제를 해결했습니다. – SexyBeastFarEast