Top Banner
小小 小 [email protected] 2012 小 1 小 17 小 小小小小小小 小 251-8511 小小小小小小小小小 小小 西 1-1-25 Tel. 0466-30-0232( 小小 ) Fax. 0466-34-5932 小小小小 13
13

小林 学

Jan 04, 2016

Download

Documents

湘南工科大学. 2012 年 1 月 17 日. 情報理論2 第13回. 小林 学. 〒251-8511  神奈川県藤沢市辻堂西海岸 1-1-25. Tel. 0466-30-0232( 直通 ). Fax. 0466-34-5932. [email protected]. [ A201教室でファイルを読み書きするプログラム作成の注意 ] VisualStudio2010 「新しいプロジェクト」画面において,「参照」ボタンをクリックしてプロジェクトの保存「場所」を以下のように設定する. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 小林 学

小林 学

[email protected]

2012 年 1 月 17 日湘南工科大学

〒 251-8511  神奈川県藤沢市辻堂西海岸 1-1-25

Tel. 0466-30-0232( 直通 )

Fax. 0466-34-5932

情報理論2 第13回

Page 2: 小林 学

[ A201教室でファイルを読み書きするプログラム作成の注意 ]VisualStudio2010 「新しいプロジェクト」画面において,「参照」ボタンをクリックしてプロジェクトの保存「場所」を以下のように設定する

z:\document\MyDocument\VisualStudio 2010\Projects

チェックはなくす

Page 3: 小林 学

[ A201教室でファイルを読み書きするプログラム作成の注意 ]読み込むファイルを置くフォルダは以下とする

z:\document\MyDocument\VisualStudio 2010\Projects\ プロジェクト名

[ 例 ]test というプロジェクトを作成し,「 demo.txt 」というファイルを読み込むプログラムを作成したい場合

のフォルダに「 demo.txt 」を置くz:\document\MyDocument\VisualStudio 2010\Projects\test

Page 4: 小林 学

#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);}

#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

開いたファイルを意味する変数

[ ファイル入力1 ]

Page 5: 小林 学

fp = fopen(" ファイル名 ", " モード ");指定されたファイルを開く. fp は開いたファイルを意味する.“ モード” にはr :読込モード(読込専用)w :書込モード(書込専用、上書き)a :追記モード(書込だが、追記)

fclose(fp); ファイルを閉じる.必ず必要.

Page 6: 小林 学

[ 前回の課題 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);

}

Page 7: 小林 学

#include<stdio.h>

int main(void){FILE *fp;

fp=fopen("write.txt","w");

fprintf(fp," 今日の日付は %d 月 %d 日です ", 12, 2);

fclose(fp);

return(0);}

#include<stdio.h>

int main(void){FILE *fp;

fp=fopen("write.txt","w");

fprintf(fp," 今日の日付は %d 月 %d 日です ", 12, 2);

fclose(fp);

return(0);}

書込むファイル名

書込みモード

//printf のようにファイルに書込む命令

printf と同様に書くと,ファイルに書き込まれ

書込むファイルを指定

[ ファイル出力 ]

Page 8: 小林 学

#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);

}

#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);

}

例題 (foutput.c)

書込むファイル名

書込みモード

printf と同様に書くと,ファイルに書き込まれ

書込むファイルを指定

Page 9: 小林 学

[ 課題 2] 架空の 3 人の氏名,住所,メールアドレスをwrite.csv ファイルに書き出すプログラムを完成させなさい.#include<stdio.h>

void main(void){FILE *fp;

fp = fopen("write.csv", "w");

??? // ここにプログラムを書く

fclose(fp);}

Page 10: 小林 学

[ 課題 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);}

Page 11: 小林 学

#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);

}

#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);

}

[ スペースで区切られたテキストファイルの読み込み方法 ]

data.txt の中身

小林学 神奈川県藤沢市辻堂 [email protected] 40二宮洋 神奈川県藤沢市鵠沼 [email protected] 42

小林学 神奈川県藤沢市辻堂 [email protected] 40二宮洋 神奈川県藤沢市鵠沼 [email protected] 42data.txt を読み込むプログラム

Page 12: 小林 学

[ 課題 4] 次の data.txt ファイルを読み込んで画面に表示するプログラムを完成させなさい.ただし読み込むデータの変数は左から char name[20], int nenrei, double taiju としなさい.

#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);

}

小林学 40 71.5二宮洋 42 68.5鈴木誠 44 65.3

小林学 40 71.5二宮洋 42 68.5鈴木誠 44 65.3

data.txt の中身

Page 13: 小林 学

[ 課題 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);

}