gpt4 book ai didi

c++ - 访问特定行的文本文件c++

转载 作者:行者123 更新时间:2023-11-30 04:11:42 28 4
gpt4 key购买 nike

我想访问文本文件中的特定行以显示或修改该行。我的文本文件包含不同长度的行,我听说不能对此类文件使用 seekg 或 seekp。我有一个代码,但它不起作用。有人可以告诉我其他一些有用的想法的错误吗?

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

std::fstream& GotoLine(std::fstream& file, unsigned int num)
{
file.seekg(std::ios::beg);
for(unsigned int i=0; i < num - 1; ++i)
{
file.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
}
return file;
}

int main()
{
using namespace std;

std::fstream& GotoLine(std::fstream& file, unsigned int num);
cout << "Starting..." << endl;
fstream file("bla.txt");
GotoLine(file, 8);
string line8;
file >> line8;
cout << "[" << line8 << "]" << endl;
// cin.get();
cout << "Finished..." << endl;
return 0;
}

最佳答案

string line8;
file >> line8;

只会提取直到第一个空白字符被命中。

你可以使用类似的东西:

string line8;
getline(file, line8);

这至少对我在使用 VS2012 的 Windows 7 上的其余代码有效

关于c++ - 访问特定行的文本文件c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20143448/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com