我正在尝试解析包含配方成分列表的文本文件
例子:
1 cup sour cream
1 cup oil
1 teaspoon lemon juice
我不确定如何分隔,1
cup
并且sour cream
每行总是只有 3 个参数。
如果我用空格分隔它,那么sour cream
将算作两个参数。
我正在尝试解析包含配方成分列表的文本文件
例子:
1 cup sour cream
1 cup oil
1 teaspoon lemon juice
我不确定如何分隔,1
cup
并且sour cream
每行总是只有 3 个参数。
如果我用空格分隔它,那么sour cream
将算作两个参数。
double quantity;
string unit;
string ingredient;
input_stream >> quantity >> unit;
getline(input_stream, ingredient);
我这样做的天真的 C++ 方式是将字符串在第二个空格上分成两部分。第一部分是字符串“1 cup”,第二部分是“sour cream”。但是您可能应该为此使用 flex 。
所以我不完全确定您要问什么,但是如果您要问如何将第一个数字和第二个单词一起提取,其余部分分别提取,则您要做的就是:
string amount, measurements, recipe;
while (!infile.eof()){
infile >> amount; //this will always give you the number
infile >> measurements; // this will give the second part(cup,teaspoon)
getline(infile,recipe); // this will give you the rest of the line
#include<iostream>
#include<sstream>
#include<fstream>
using namespace std;
int main()
{
ifstream in_file("test.txt");
string line;
while (getline(in_file, line))
{
stringstream ss(line);
int quantity;
string unit;
string ingredient;
ss >> quantity;
ss >> unit;
getline(ss, ingredient);
cout << "quantity: " << quantity << endl;
cout << "uint: " << unit << endl;
cout << "ingredient: " << ingredient << endl;
}
}