我是C ++的新手,需要fstream的帮助。我搜索和阅读,无法找到这些信息。
我想从txt文件中的特定行获取数据。
例如在txt文件中,我有:
10行11列,每列都是int,char,string等。
无论如何,我可以从特定的行和列中检索一个变量,而不使用数组吗?
例如:如果我想从第9行和第4列检索变量。
提前致谢!
答案 0 :(得分:2)
如果您确切地知道每行以及每列中每行的位置,您可以准确计算出去的位置use seekg
to position yourself。
将数据存储为文本时,这种情况并不常见。您通常必须编写执行以下操作的函数:
std::getline
N次以从文件到达第N行。 std::stringstream
。 >>
次M std::stringstream
上使用std::string
将列读入std::string
。答案 1 :(得分:0)
//-------------------------------
//--This code maybe can help you
//-------------------------------
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
int main ()
{
char lBuffer[100];
//---
std::string myfilename = "/var/log/mylog.log";
std::ifstream log_file ( myfilename );
std::stringstream my_ss;
std::string c1, c2, c3;
//---
std::cout << "Rec1\t\t Rec2\t\t Rec3" << std::endl;
while ( ! log_file.eof() )
{
log_file.getline(lBuffer,80);
my_ss << lBuffer;
my_ss >> c1;
my_ss >> c2;
my_ss >> c3;
std::cout << c1 << "\t\t " << c2 << "\t\t " << c3 << std::endl;
}
}
//---