はじめての C

ファイルを開閉して 読み書きをするためには、ファイル型のポインタ (fp) を用意しておく。
FILE *fp;
↑この "FILE" はヘッダファイル stdio.h で規定されている typedef 構造体。

renraku というファイルをつくって、それにメッセージを書き込むプログラムを作成せよ。

  1. /* kaihei_1 */
  2. #include
  3. main()
  4. {
  5. FILE *fp; /* ポインタを用意 */
  6. fp = fopen("renraku", "w");
  7. /* 関数 fopen() を使って書き込む */
  8. /* 第2引数(モード)の "w" は write */
  9. if (fp != NULL) {
  10. fputs("Hello !\n", fp);
  11. /* 関数 fputs() は文字列を1行ずつ標準出力 */
  12. /* ただし、改行記号を含まない */
  13. /* 第2引数は ポインタ */
  14. fclose(fp);
  15. /* 関数 fclose() を使ってファイルを閉じる */
  16. }
  17. return 0;
  18. }
$cat renraku として確かめる。

ファイル renraku にメッセージを追加するプログラムを作成せよ。
fputs() のかわりに fprintf() を使うこと。

  1. /* kaihei_2 */
  2. #include
  3. main()
  4. {
  5. FILE *fp;
  6. fp = fopen("renraku", "a");
  7. /* 第2引数(モード)の "a" は append */
  8. /* ファイルの末尾に書き込む */
  9. if (fp != NULL) {
  10. fprintf(fp, "My name is Catharine.\n");
  11. /* 関数 fprintf() では 第1引数が ポインタ */
  12. fclose(fp);
  13. }
  14. return 0;
  15. }

ファイルに 連続した数字(25 から 37 まで)を書き込むプログラムを作成せよ。

  1. /* kaihei_3 */
  2. #include
  3. main()
  4. {
  5. FILE *fp;
  6. int i;
  7. fp = fopen("rensuu", "w");
  8. if (fp != NULL) {
  9. for (i = 25; i <= 37; i++) {
  10. fprintf(fp, "%d ", i);
  11. /* 第3引数に 変数 i */
  12. }
  13. fprintf(fp, "\n");
  14. fclose(fp);
  15. }
  16. return 0;
  17. }