#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
const int N = 20;
void instructions()
{cout << "* To quit or print a bill, enter 0 when asked to Enter an item number." << endl;
cout << endl;
cout << "* To cancel orders, enter the item number of the item to cancel" << endl;
cout << " and then enter the negative of the number of orders to cancel." << endl;
cout << " (e.g., -3 to cancel 3 orders of the selected item)." << endl;
cout << endl;
cout << "--- MENU --------------------" << endl;
}
int main(int argc, char *argv[])
{
ifstream infile; // init input file
string foods; // food name
float costs; // food cost
string food[N]; // food array
float cost[N]; // cost array
int cnt; // counter
char tab = '\t';
cout << setprecision(2) << fixed; // shows decimal two places
// below if file argument isn't found return error message
if(argc != 2)
{
cerr << "File not found." << endl;
return 1;
}
infile.open(argv[1]); // opens the user inputed file
cnt = 0;// sets up counter for while loop
infile >> foods >> costs; // initalizes the while loop
instructions();
// While loop reads in information from input file and uses a count.
while(infile && cnt < N)
{
food[cnt]= foods;
cost[cnt] = costs;
cout << cnt << ": " << food[cnt] << tab << cost[cnt] << endl;
++cnt;
infile >> foods >> costs;
}
cout << "Enter item number (0 to print bill): ";
cout << endl << cnt;
return 0;
}
オブジェクト:プログラムはメニューファイルを読み込みます。食べ物の名前は配列に行き、コストは配列になります。私が抱えている問題は、単語にスペースがあると、それはすべてのものを捨てるということです。私はgetlineを使う必要があることを知っていますが、getlineをどのようにして//名前に変換するかを正確にはわかりません。誰かを助けたり、いくつかのタイプの例を表示することはできますか?getlineを分割する方法はありますか?
Hamburger 1.89
Cheeseburger 2.29
French Fries 1.59
Onion Rings 1.59
Soda 1.29
Iced Tea 1.29
どのメニューファイルが見えますか?アイテムの名前と価格を区別するものは何ですか? – harmic
ハンバーガー\t 1.89 チーズバーガー\t 2.29 フライドポテト\t 1.59 オニオンリング\t 1.59 フォーマットされていないハンバーガー1.89 thatsのソーダ\t \t 1.29 アイスティー\t 1.29 –
ので、各項目と価格は、独自のライン –