電子書籍の厳選無料作品が豊富!

飲食店の六月分の帳簿データを 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 ;
}


よろしくお願いします。

A 回答 (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というファイルを作って試してみて下さい)
補っている部分は、自分で見つけて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/08/14 09:53

Cの話はね、コッチ↓で訊いてもらった方がコメントつきやすいと思うんだ。


http://okwave.jp/c250.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!