初心者のためのC言語入門講座ファイルの読み書き(無料)
2023年10月26日fopenの利用wモードとaモード
●ソース1
#include <stdio.h>
void main(){
char *myName={"YamadaTaro"};
int myNumber=1100006;
FILE *fp; //ファイルを格納する変数
fp=fopen("test.dat","w"); //write 新規に保存専用モード
fprintf(fp,"%d,%s\n",myNumber,myName); //ファイルに書き込み
fclose(fp); //ファイルを閉じる
printf("ファイルに保存しました\n");
}
fopenの利用rモード
fopenの利用whileとの組み合わせ
●ソース2
#include <stdio.h>
void main(){
FILE *fp;
int myNumber;
char myName[20];
fp=fopen("test.dat","r"); //read モード読み取り専用
while( (fscanf(fp,"%d,%s",&myNumber,&myName)) != -1 ){
printf("%d 番の氏名は%s さん\n",myNumber,myName);
}
fclose(fp); //ファイルを閉じる
}
この単元の練習問題
問題1
あるクラスの成績を保存するファイル名「seiseki.txt」で、データを保存するプログラムを作成してください。
実行例)
>生徒名を入力してください yamada
>点数を入力してください 90
>保存しました
seiseki.txtは以下のように保存
Yamada,90
問題2
問題1のプログラムを、生徒名にend と入力されるまで、テキストファイルにデータを追加していくように変更してください。
実行例)
>生徒名を入力してください yamada
>点数を入力してください 90
>点数を追加保存しました
>生徒名を入力してください Suzuki
>点数を入力してください 80
>点数を追加保存しました
>生徒名を入力してください end
>プログラムを終了しました
Yamada,90
Suzuki,80
Suzuki,80
問題3
問題2で作成したテキストファイルよりデータを読み込んで表示するプログラムを作成してください。
問題4
以下の処理ができるプログラムを作成してください。
>合格点を入力してください 80
>指定された点数の人数は、○人です。
>合格者一覧表
>yamada,90
>sato,85
>合格点を入力してください 80
>指定された点数の人数は、○人です。
>合格者一覧表
>yamada,90
>sato,85