
飲食店の六月分の帳簿データを book-6.dat がテキストで書かれており、中身を見てみると
20120601 1 meat 125 10000
20120602 1 rice 2000 10
20120603 0 uriage 500 100
20120603 1 beer 140 24
....
となっている。このうち左端から日付、支出/収入、商品名、単価、数量を表している。
ただし、支出は1、収入は0とする。このようなデータを読み取って残高を計算するプログラムを目的の動作をするように不足部分を補いなさい。繰越金はキーボードより入力し、変数kurikoshikinに代入するが、入力後、その金額に間違いがないか確認するものとする。間違いがあれば何度でも入力し直せる。
#include<stdio.h>
#include<stdlib.h>
#define FILENAME "book.dat"
int main(){
FILE *fp;
int kurikoshikin;
char Yes0rNo = 'n';
fp = fopen(FILENAME, "r");
if(fp==NULL){
fprintf(stderr, "%s is not found!\n", FILENAME);
exit(1);
}
do{
printf("Input kurikoshikin > ");
}while(Yes0rNo != 'y');
printf("zandaka = %d\n", goukei(kurikoshikin, fp));
fclose(fp);
return 0;
}
int goukei(int kurikoshikin, FILE *fp){
int sum = 0, tanka, suryou;
char syouhin[50];
char date[60];
int in_out_flag;
sum = kurikoshikin;
while(fscanf( )!=EOF){
if(in_out_flag==0){
sum += tanka* suryou;
}else{
}
}
return ;
}
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
#include<stdio.h>
#include<stdlib.h>
#define FILENAME "book.dat"
int goukei(int kurikadai8
koshikin, FILE *fp);
int main(){
FILE *fp;
int kurikoshikin;
char Yes0rNo = 'n';
fp = fopen(FILENAME, "r");
if(fp==NULL){
fprintf(stderr, "%s is not found!\n", FILENAME);
exit(1);
}
do{
printf("Input kurikoshikin > ");
scanf("%d", &kurikoshikin);
printf("Input Yes(y) 0r No(n) >");
scanf("%s", &Yes0rNo);
}while(Yes0rNo != 'y');
printf("zandaka = %d\n", goukei(kurikoshikin, fp));
fclose(fp);
return 0;
}
int goukei(int kurikoshikin, FILE *fp){
int sum = 0, tanka, suryou;
char syouhin[50];
char date[60];
int in_out_flag;
sum = kurikoshikin;
while(fscanf(fp, "%s%d%s%d%d", date, &in_out_flag, syouhin, &tanka, &suryou)!=EOF){
if(in_out_flag==0){
sum += tanka* suryou;
}else{
sum -= tanka* suryou;
}
}
return sum;
}
これで目的の出力をします。(book.datというファイルを作って試してみて下さい)
補っている部分は、自分で見つけて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語でのfscanfについて
-
ファイルの出力先がうまく指定...
-
エラーがわかりません、、
-
ファイル出力で改行を入れたい!
-
C言語でのCSVソートとデータ抽...
-
複数ファイルの同時読み込みの...
-
OpenGLによる描画内容をBMP出力
-
InternetReadFileを使ったファ...
-
線形リスト
-
main.c:7:43: warning: implici...
-
「指定されたキャストは有効で...
-
Aの値からBの値を除するとは??
-
信頼区間の1.96や1.65ってどこ...
-
20'(角度)の計算がわかりま...
-
「Aに対するBの割合」と「Aに対...
-
テキストデータをそのままバイ...
-
数字以外が入力されたらエラー...
-
正の数aは4の倍数で、7でわると...
-
DWORDの実際の型は何でしょうか
-
O(n log n)について2
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数ファイルの同時読み込みの...
-
c言語でのfscanfについて
-
隣接行列を読み込んで有向グラ...
-
ファイル出力で改行を入れたい!
-
C言語でファイル読み書きを早く...
-
大量の入力ファイルを扱うとき...
-
fopenでファイル名に、変数を使...
-
ファイルへの書込み処理が異常...
-
fgets( ) の返り値は何?
-
日本語ファイル名のFTPについて
-
C言語 連番データの読み込み
-
テキストファイル内に対して, ...
-
InternetReadFileを使ったファ...
-
CRC32の計算方法
-
テキストファイルをバイナリフ...
-
ガンマ変換 C言語でプログラ...
-
C言語でのCSVソートとデータ抽...
-
fscanfでループしてしまう。
-
エラーがわかりません、、
-
漢字を配列に入れたいのですが
おすすめ情報