![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
飲食店の六月分の帳簿データを 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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でファイル読み書きを早く...
-
CRC32の計算方法
-
fopenでファイル名に、変数を使...
-
fgets関数の利用 c言語
-
プログラムの問題
-
fscanfでループしてしまう。
-
[C言語]2つのファイルを用いた...
-
テキストファイルをバイナリフ...
-
なぜCSQとCIP形式ではコ...
-
簡易grep関数ができません。助...
-
ファイル出力で改行を入れたい!
-
c言語でのfscanfについて
-
テキストファイル内に対して, ...
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
「Aに対するBの割合」と「Aに対...
-
C言語 プログラム
-
プログラムの実行時に'<'でリダ...
-
DWORDの実際の型は何でしょうか
-
C++にてtemplateで受け取った任...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語でのfscanfについて
-
fopenでファイル名に、変数を使...
-
複数ファイルの同時読み込みの...
-
C言語でセグメンテーションエ...
-
C言語でファイル読み書きを早く...
-
ファイル出力で改行を入れたい!
-
エラーがわかりません、、
-
テキストファイル内に対して, ...
-
構造体のメンバにファイルポイ...
-
C言語にてXMLファイルから任意...
-
ガンマ変換 C言語でプログラ...
-
【C言語】ファイルを読み込んで...
-
日本語ファイル名のFTPについて
-
fscanfでループしてしまう。
-
CRC32の計算方法
-
fgets( ) の返り値は何?
-
VisualStudioでのファイルの入...
-
ファイルに行番号を追加
-
ファイルへの書込み処理が異常...
-
ファイルが読み込めない・・・
おすすめ情報