2012年1月17日 湘南工科大学 情報理論2 第13回 小林 学 〒251-8511 神奈川県藤沢市辻堂西海岸1-1-25 Tel. 0466-30-0232(直通) Fax. 0466-34-5932 [email protected] [A201教室でファイルを読み書きするプログラム作成の注意] VisualStudio2010「新しいプロジェクト」画面において,「参照」ボタン をクリックしてプロジェクトの保存「場所」を以下のように設定する z:\document\MyDocument\VisualStudio 2010\Projects チェックはなくす [A201教室でファイルを読み書きするプログラム作成の注意] 読み込むファイルを置くフォルダは以下とする z:\document\MyDocument\VisualStudio 2010\Projects\プロジェクト名 [例]testというプロジェクトを作成し,「demo.txt」というファイルを 読み込むプログラムを作成したい場合 z:\document\MyDocument\VisualStudio 2010\Projects\test のフォルダに「demo.txt」を置く [ファイル入力1] #include<stdio.h> int main(void){ FILE *fp; char moji; 開いたファイルを意味する変数 読み込むファイル名 fp = fopen("demo.txt","r"); while(1){ moji = fgetc(fp); if(moji == EOF) break; printf("%c",moji); } fclose(fp); } return(0); r:読込モード ファイルから半角1文字が 読込まれ、moji に入る ha fp = fopen("ファイル名", "モード"); 指定されたファイルを開く.fpは開いたファイ ルを意味する. “モード”には r:読込モード(読込専用) w:書込モード(書込専用、上書き) a:追記モード(書込だが、追記) fclose(fp); ファイルを閉じる.必ず必要. [前回の課題1解答]ファイルdemo.txtから4文字読み込み,char 型の配列strに入れなさい.(文字列の最後は0を入れる点に注 意) #include<stdio.h> void main(void){ FILE *fp; char str[8]; int i; fp = fopen("demo.txt","r"); for(i=0;i<4;i++) str[i]=fgetc(fp); str[4]=0; } fclose(fp); printf("str=%s", str); [ファイル出力] #include<stdio.h> 書込むファイル名 int main(void){ FILE *fp; 書込みモード fp=fopen("write.txt","w"); printfと同様に書くと,ファ イルに書き込まれる //printfのようにファイルに書込む命令 fprintf(fp,"今日の日付は%d月%d日です", 12, 2); fclose(fp); } return(0); 書込むファ イルを指定 例題(foutput.c) #include<stdio.h> #include<math.h> void main(void){ FILE *fp; double x, y, z; 書込むファイル名 書込みモード fp = fopen("write.csv","w"); } for(x=0; x < 2*3.14159; x = x + 0.01){ y = sin(x); z = cos(x); fprintf(fp,"%lf,%lf,%lf\n", x, y, z); } fclose(fp); 書込むファ イルを指定 printfと同様に書くと,ファ イルに書き込まれる [課題2]架空の3人の氏名,住所,メールアドレスをwrite.csvファイ ルに書き出すプログラムを完成させなさい. #include<stdio.h> void main(void){ FILE *fp; fp = fopen("write.csv", "w"); ??? } //ここにプログラムを書く fclose(fp); [課題3] 関数 y = x3-2x2+1 とする.x=-2,-1.9,...,1.9,2 それぞ れに対し,x,y の値をそれぞれ write.csvファイルに書き込むプ ログラムを作成しなさい.またExcelで図を表示しなさい. #include<stdio.h> void main(void){ FILE *fp; double x, y; fp = fopen("write.csv", "w"); for(x=-2; x<2.1; x=x+0.1){ ??? //ここにプログラムを書く } } fclose(fp); [スペースで区切られたテキストファイルの読み込み方法] data.txtの中身 小林学 神奈川県藤沢市辻堂 [email protected] 40 二宮洋 神奈川県藤沢市鵠沼 [email protected] 42 data.txtを読み込むプログラム #include<stdio.h> void main(void){ char name[20], address[100], email[100]; FILE *fp; int i, age; } fp=fopen("data.txt","r"); for(i=0;i<2;i++){ fscanf(fp, "%s %s %s %d",name, address, email, &age); printf("%s %s %s %d\n",name,address,email,age); } fclose(fp); [課題4] 次のdata.txtファイルを読み込んで画面に表示するプログラムを完成さ せなさい.ただし読み込むデータの変数は左から char name[20], int nenrei, double taijuとしなさい. data.txtの中身 小林学 40 71.5 二宮洋 42 68.5 鈴木誠 44 65.3 #include<stdio.h> void main(void){ FILE *fp; char name[20]; int nenrei, i; double taiju; } fp = fopen("data.txt", "r"); for(i=0;i<3;i++){ ??? //ここにプログラムを書く } fclose(fp); [課題5] 課題3のx,yをスペース区切りでdata.txtにファイル出力し, さらにdata.txtの内容を読み込んで画面に表示するプログラム を作成しなさい. #include<stdio.h> void main(void){ FILE *fp; double x, y; int i; } fp = fopen("data.txt", "w"); for(x=-2; x<2.1; x=x+0.1){ ??? //ここにプログラムを書く } fclose(fp); fp = fopen("data.txt", "r"); for(i=0;i<???;i++){ ??? //ここにプログラムを書く } fclose(fp);
© Copyright 2025 ExpyDoc