はじめての C
ファイルを開閉して 読み書きをするためには、ファイル型のポインタ (fp) を用意しておく。
FILE *fp;
↑この "FILE" はヘッダファイル stdio.h で規定されている typedef 構造体。
renraku というファイルをつくって、それにメッセージを書き込むプログラムを作成せよ。
- /* kaihei_1 */
- #include
- main()
- {
- FILE *fp; /* ポインタを用意 */
- fp = fopen("renraku", "w");
- /* 関数 fopen() を使って書き込む */
- /* 第2引数(モード)の "w" は write */
- if (fp != NULL) {
- fputs("Hello !\n", fp);
- /* 関数 fputs() は文字列を1行ずつ標準出力 */
- /* ただし、改行記号を含まない */
- /* 第2引数は ポインタ */
- fclose(fp);
- /* 関数 fclose() を使ってファイルを閉じる */
- }
- return 0;
- }
ファイル renraku にメッセージを追加するプログラムを作成せよ。
fputs() のかわりに fprintf() を使うこと。
- /* kaihei_2 */
- #include
- main()
- {
- FILE *fp;
- fp = fopen("renraku", "a");
- /* 第2引数(モード)の "a" は append */
- /* ファイルの末尾に書き込む */
- if (fp != NULL) {
- fprintf(fp, "My name is Catharine.\n");
- /* 関数 fprintf() では 第1引数が ポインタ */
- fclose(fp);
- }
- return 0;
- }
ファイルに 連続した数字(25 から 37 まで)を書き込むプログラムを作成せよ。
- /* kaihei_3 */
- #include
- main()
- {
- FILE *fp;
- int i;
- fp = fopen("rensuu", "w");
- if (fp != NULL) {
- for (i = 25; i <= 37; i++) {
- fprintf(fp, "%d ", i);
- /* 第3引数に 変数 i */
- }
- fprintf(fp, "\n");
- fclose(fp);
- }
- return 0;
- }