我對使用C++讀取*.txt
文件有疑問。我試圖只讀取[start]
和[end]
等特定符號之間的部分數據。用C++讀取txt文件的一部分
我該怎麼做?
我知道如何打開和閱讀整個文件,但我不知道如何只讀取其中的一部分與這樣的要求。
我對使用C++讀取*.txt
文件有疑問。我試圖只讀取[start]
和[end]
等特定符號之間的部分數據。用C++讀取txt文件的一部分
我該怎麼做?
我知道如何打開和閱讀整個文件,但我不知道如何只讀取其中的一部分與這樣的要求。
使用std::string
和std::getline
過濾出行並從那裏出發。例如:
std::ifstream input("someText.txt");
std::string line;
unsigned int counter = 0;
while (std::getline(input, line))
{
std::cout << "line " << counter << " reads: " << line << std::endl;
counter++;
}
此外,您可以使用std::string
類的substr()
方法篩選出的子字符串。你也可以用std::getline
這個可選的第三個參數來標記字(而不是行),這是標記器。例如:
std::ifstream input("someText.txt");
std::string word;
unsigned int counter = 0;
while (std::getline(input, word, ' '))
{
std::cout << "word #" << counter << " is: " << word << std::endl;
counter++;
}
去這裏的方法是逐字閱讀,直到找到想要的開始標記,然後讀取並保存所有單詞,直到讀取結束標記。
如果您自己創建.txt文件,請以結構化方式創建該文件,並在開始時保留不同塊的偏移量和大小。如果是這樣,您可以從頭開始讀取所需數據塊的偏移量,並使用fseek(或類似)跳轉到那裏。否則,你必須逐字閱讀。