【ニコニコ動画】ミクと学ぶC言語第15回のコードを改造してみた
※だいぶ前に下書きしたまま放置してたので、問題があるかもしれんですが、まあ投稿しちゃえと。
主にファイルの読み書き、標準入出力とか
練習問題を改造してみた。
一日に貯める金額と、目標貯金額を設定できるようにして、ファイルに書き込んだ結果を表示させる(実際にはファイルから読み込むのではなく、ただ画面に表示させている)ようにしますた。
/* saving.c */ #include<stdio.h> #include<stdlib.h> int main(int argc, char const *argv[]) { int day=0,sum=0,target,dairy,flag=0,loop=0; FILE *fp; // print out to file fp = fopen("/Users/noriyo_tcp/Desktop/Xcode/CStudy/CStudy/money.txt", "wt"); // ここは絶対パスで指定しました。相対パスは分らん。 if (fp==NULL) { fprintf(stderr, "ファイルオープンエラー\n"); exit(1); // 強制終了 } fprintf(stdout, "一日の貯金額(円/4桁):"); fscanf(stdin, "%5d", &dairy); fprintf(stdout, "目標の貯金額(円/7桁):"); fscanf(stdin, "%7d", &target); fprintf(fp, "一日の貯金額:%5d円\n", dairy); fprintf(fp, "目標の貯金額:%7d円\n", target); fprintf(fp, "+--------------+\n"); // input data to file while (sum<target) { day++; sum += dairy; fprintf(fp, "%5d日目: %7d円\n", day, sum); } fprintf(fp, "%7d万円達成しました!\n", target); fprintf(fp, "一日%5d円貯金で\n", dairy); fprintf(fp, "%7d円貯めるには\n", target); fprintf(fp, "%5d日かかります!\n", day); fprintf(stdout, "money.txtに保存しました\n"); do { fprintf(stdout, "結果を表示しますか? YES[1] NO[3]"); fscanf(stdin, "%d", &flag); switch (flag) { case 1: fprintf(stdout, "%d円貯めるには%d日かかります。\n", target, dairy); loop=1; break; case 3: loop=1; break; default: loop=0; break; } } while (loop==0); fprintf(stdout, "終了しました。\n"); fclose(fp); return 0; }