我已經創建了一個.txt文件,其中包含產品名稱,描述和數量的列表。 例如,如:C++ - 如何將數據從文件分配到多個變量
100 Plus , Sports Drink , 12 Sprite , Citrus Drink , 5 Dutch Lady, Milk, 8
我希望將這些信息分配到三個變量,這是string name
,string description
和int quantity
我曾嘗試使用類似while(product >> name >> description >> quantity)
,但它僅適用如果它只包含單個單詞而沒有逗號,但不包含多個單詞的字符串。
這是我的代碼。
#include <string>
include <fstream>
include <iostream>
using namespace std;
int main()
{
string name, description;
int quantity;
fstream product("product.txt");
string c_name[5],c_description[5];
int c_quantity[5];
int i=0;
while(product >> name >> description >> quantity)
{
cout<<i<<" Name= "<<name<<", Description= "<< description <<" , Quantity= " <<quantity<<"\n";
c_name[i] = name;
c_description[i] = description;
c_quantity[i] = quantity;
i++;
}
cout<<"-------------------------------------------------------------------"<<endl<<endl;
for(i=0;i<5;i++) //to display the variables
{
cout<<i+1<<" "<<c_name[i]<<endl;
cout<<i+1<<" "<<c_description[i]<<endl;
cout<<i+1<<" "<<c_quantity[i]<<endl<<endl;
}
product.close();
return 0;
}
我可以知道我該怎麼做? 如果可能的話,我想只堅持一些簡單的頭文件。 非常感謝。
你需要的是調用「解析」或「標記化」:讀一行,然後使用一些算法將它分解成你想要的部分。你的解析並不難,因爲你的數據格式使用逗號作爲分隔符,我可以建議你看看http://stackoverflow.com/questions/53849/how-do-i-tokenize-a-string-in- C – 2014-12-06 14:05:40