我正在编写一个从命令行获取输入文件的函数。输入文件如下所示:
11 25
1 2 3 4 5 6 7 8
1 2 3
1 3 5
1 2 2
我想在整数变量的第一行存储这两个数字。第二行存储在一个数组中。第三行和后续行存储在另一个容器中。目前我有一个程序可以从第一行读取:
void classFunctions::storeInput(const char* inputFile)
{
std::ifstream file(inputFile);
std::string placeholderString;
while(!file.eof())
{
while(std::getline(file, placeholderString))
{
//Do something
}
}
}
但是我如何更改它以便它可以从第二行,第三行和后续行读取?
答案 0 :(得分:0)
检查文本文件是否为空后,您应该拨打getline()
两次并继续阅读,直至eof()
getline(file, first_line);
//proceed to process with a stringstream
getline(file, second_line);
//process
while(true) {
string line;
getline(file, line);
//process
if(file.eof()) break;
}
答案 1 :(得分:0)
第一行只是提取两个变量。对于第二行,应使用std::getline()
,您可能应该使用std::istringstream
并使用std::istream_iterator
将行解析为数组。其余的行也需要连续调用std::getline()
。