課題1
下記のプログラムをfile1.cとして書き、実行結果の通り正しく実行されるか 確認せよ。
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fout; int c; if((fout=fopen("file1.txt", "w")) == NULL){ printf("出力ファイルをオープンできません。\n"); exit(1); } printf("好きな文字を入力してください。\n"); printf("入力の終了時には Ctl+d を入力してください。\n"); while ((c=getchar()) != EOF){ putc(c, fout); } fclose(fout); exit(0); }
(実行結果) hp3225[susaki]502:~/program% ./a.out 好きな文字を入力してください。 入力の終了時には Ctl+d を入力してください。 aaaa bbbbbbbbbbbbb cccccc dddddddd eeee hp3225[susaki]503:~/program% hp3225[susaki]503:~/program% cat file1.txt aaaa bbbbbbbbbbbbb cccccc dddddddd eeee
課題2
課題1において作成したファイルfile1.txtから文字列を読み込んで、 その文字列を"printf()"で画面出力させたい。 *******で隠された部分を補ってfile2.cとして保存し、 実行結果の通り正しく実行されるか確認せよ。
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fin; char c[256]; if((fin=fopen("file1.txt", "r")) == NULL){ printf("入力ファイルをオープンできません。\n"); exit(1); } printf("file1.txtの内容:\n"); while (*****************************){ printf("%s",c); } fclose(fin); exit(0); }
(実行結果) hp3225[susaki]505:~/program% ./a.out file1.txtの内容: aaaa bbbbbbbbbbbbb cccccc dddddddd eeee hp3225[susaki]506:~/program%
課題3
下記のプログラムをfile3.cとして書き、実行結果の通り正しく実行されるか 確認せよ。
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fout; int dat; if((fout=fopen("file3.txt", "w")) == NULL){ printf("出力ファイルをオープンできません。\n"); exit(1); } printf("好きな数字を入力してください。\n"); printf("入力の終了時には Ctl+d を入力してください。\n"); while (scanf("%d", &dat) != EOF){ fprintf(fout,"%d\n",dat); } fclose(fout); exit(0); }
(実行結果) hp3225[susaki]507:~/program% ./a.out 好きな数字を入力してください。 入力の終了時には Ctl+d を入力してください。 21 78 42 93 76 hp3225[susaki]508:~/program% hp3225[susaki]508:~/program% cat file3.txt 21 78 42 93 76 hp3225[susaki]509:~/program%
課題4
課題3で作成したファイルfile3.txtから数字を読み込んで、 その数字の3倍の値をfile4.txtに出力したい。 *******で隠された2箇所を補って、実行結果の通り正しく実行されるか確認せよ。
#include <stdio.h> #include <stdlib.h> int main(void) { FILE *fin, *fout; int dat; if((fin=fopen("file3.txt", "r")) == NULL){ printf("入力ファイルをオープンできません。\n"); exit(1); } if((fout=fopen("file4.txt", "w")) == NULL){ printf("出力ファイルをオープンできません。\n"); exit(1); } while (****************************){ ******************************** } fclose(fin); fclose(fout); exit(0); }
(実行結果) hp3225[susaki]510:~/program% ./a.out hp3225[susaki]511:~/program% hp3225[susaki]511:~/program% cat kadai24-4.txt 63 234 126 279 228
課題5
課題1で作成したファイルfile1.txtから文字列を読み込んで、その文字列を file5.txtに出力したい。ただし、実行結果のように、出力時には行間には1行空 白を入れるものとする。プログラムをfile5.cとして作成し、実行結果のように 動作することを確認せよ。
(実行結果) hp3225[susaki]513:~/program% ./a.out hp3225[susaki]514:~/program% hp3225[susaki]514:~/program% cat file5.txt aaaa bbbbbbbbbbbbb cccccc dddddddd eeee hp3225[susaki]515:~/program%