C++;使用fstream查找特定数据 我是C++新手,需要FFSW的帮助。我已经搜索和阅读了,但找不到这些信息
我想从txt文件中的特定行获取数据 例如,在txt文件中,我有: 10行11列,每列可以是int、char、string等 我是否可以在不使用数组的情况下从特定的行和列中检索一个变量 如果我想从第9行和第4列检索变量C++;使用fstream查找特定数据 我是C++新手,需要FFSW的帮助。我已经搜索和阅读了,但找不到这些信息,c++,fstream,ifstream,ofstream,C++,Fstream,Ifstream,Ofstream,我想从txt文件中的特定行获取数据 例如,在txt文件中,我有: 10行11列,每列可以是int、char、string等 我是否可以在不使用数组的情况下从特定的行和列中检索一个变量 如果我想从第9行和第4列检索变量 提前谢谢 如果您确切地知道每一行的长度和每一列在每一行中的位置,您就可以准确地计算出您想要去的地方和位置 对于以文本形式存储的数据,这种情况并不常见。您通常必须编写一个函数来执行以下操作: 打开文件 在文件上使用N次可从文件中转到第N行 把这一行写进一行 在std::strings
提前谢谢 如果您确切地知道每一行的长度和每一列在每一行中的位置,您就可以准确地计算出您想要去的地方和位置 对于以文本形式存储的数据,这种情况并不常见。您通常必须编写一个函数来执行以下操作:
std::stringstream
M次上使用>
将列读入std::string
std::string
转换为适当的数据类型//-------------------------------
//--这段代码也许可以帮助你
//-------------------------------
#包括
#包括
#包括
#包括
int main()
{
char-lBuffer[100];
//---
std::string myfilename=“/var/log/mylog.log”;
std::ifstream日志文件(myfilename);
std::stringstream my_ss;
标准:字符串c1、c2、c3;
//---
std::cout>c2;
my_ss>>c3;
标准::不能跳过8“卷”然后跳过3列,然后读一件事?你要问的是它的核心:我如何跳转到文件中的某个特定位置?
任何人建议的事情,比如immibis和已经提供的答案建议的,都不能是通读文件,直到找到你想要的部分,然后记录你想要的部分,然后关闭文件。你不能在不知道文件位置的情况下跳转到文件中的某个位置。
//-------------------------------
//--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;
}
}
//---