ホーム » スタッフ » 斉藤徹 » 絶対/相対PATHの演習とファイル処理

2011年7月
« 6月   8月 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

最近の投稿(電子情報)

アーカイブ

カテゴリー

絶対/相対PATHの演習とファイル処理

先週の講義でPATHの概念を説明したので、 授業前半でコマンドラインを用いてPATHの演習を行い、 後半はC言語でのファイル処理ということでfopen,fclose等の説明。

絶対/相対PATHの演習

簡単な演習ということで、Windowsのコマンドライン(cmd.exe)を起動し、 dir , type , cd , mkdir , rmdir , echo string>PATH などのファイル操作を 説明する。

最初は、C:¥Windows¥Help ディレクトリなどを使って ディレクトリの中を色々と移動しながら、絶対PATH/相対PATHを理解してもらう。 後半は、カレントドライブ(Windows固有の概念)を Z: に移動し、 Z:¥Japan¥Fukui¥Echizen¥yourname.txt といったような ディレクトリやファイルを作ったり消したりしながら、コマンドラインの操作を 理解してもらう。 途中、エクスプローラでGUIも横で見ながら、作業をしてもらう。

fopen() , fclose() などの説明

授業の後半は、fopen() , fclose() の説明として、 以下の様なサンプルプログラムを動かして fopen / fclose を説明。 来週は、説明が不十分だった、バイナリモード/テキストモード、 fgets , fputs , fgetc , fputc といった行入力,文字入力を説明し、 その翌週あたりに実際の演習とする予定。

(( fopen / fclose サンプル ))
FILE * fp ;
if ( (fp = fopen( "hoge.txt" , "rt" )) != NULL ) {
int c ;
// 入力データが無くなるまで、ファイルから1文字入力し、それを出力。
while( (c = fgetc( fp )) != EOF ) {
printf( "%c" , c ) ;
}
fclose( fp ) ;
}

また、fopenでの PATHの指定では、Windowsの場合ディレクトリ区切り文字が "¥"であるため、C言語の文字定数として、"C:¥test.txt" といった書き方を すると、"¥t"の部分がタブ文字として扱われて、ファイルが開けなくなる 可能性があることを説明する。 これらの対応として、WindowsのC言語ではディレクトリ区切り文字に、 "/"も使えることなども補足説明を行う。

FILE* fp ;
if ( (fp = fopen( "c:¥¥test.txt" , "rt" )) != NULL ) {
char name[ 100 ] ;
int  point ;
int  sum = 0 ;
while( fscanf( fp , "%s %d" , name , &point ) == 2 ) {
printf( "%s さんの点数は %d¥n" , name , point ) ;
sum += point ;
}
printf( "合計は %d¥n" , sum ) ;
fclose( fp ) ;
}