C ++将文本文件的一部分输入到数组中

时间:2013-04-28 20:10:27

标签: c++ file-io string-parsing

我需要读取按标题组织的配置设置的txt文件,例如Menu:,Tables:,Waiter:etc。

找到一个正确的部分我需要提取正确的信息。所以基本上我试图在文本文件中搜索特定的字符串,一旦找到该字符串,就开始存储包含该字符串的行之后的行的输入。

到目前为止我正在尝试。

void MenuItemArray()
{
    string arrayIn;

    ifstream fin("/usr/local/final_project/restaurant/config.txt");

    while (getline(fin, arrayIn))
    {
        if (arrayIn.find("Menu:") == true)
        {
        }

我要提取的文字文件:

Tables:  table #, max seats
1 2
2 4 
3 2 
4 2 
5 2 
6 4 
7 6 
8 10 
9 2 
10 4 
11 4 
12 4 
13 4 
14 2 
15 2 
16 2 
17 2 
18 2

Waiters:  first name followed by table list
John 1,2,5,9,11,15
Maria 3,4,6,7,17,18
Mike 8,10,12,13,14,16 

Menu: listing of the full menu: item code, name, price
A1 Bruschetta 5.29
A2 Caprese_Flatbread 6.10
A3 Artichoke-Spinach_Dip 3.99
A4 Lasagna_Fritta 4.99
A5 Mozzarella_Fonduta 5.99
E1 Lasagna_Classico 6.99
E2 Capellini_Pomodoro 7.99
E3 Eggplant_Parmigiana 8.99
E4 Fettuccine_Alfredo 7.49
E5 Tour_of_Italy 14.99
D1 Tiramisu 2.99
D2 Zeppoli 2.49
D3 Dolcini 3.49
S1 Soda 1.99
S2 Bella_Limonata 0.99
S3 Berry_Acqua_Fresca 2.88

1 个答案:

答案 0 :(得分:0)

如果文件相对较小,您可以将其全部读入std :: string,然后使用std:string find函数。

ifstream in("config.txt");
ostringstream oss;
oss << in.rdbuf();
string contents = oss.str();