• 検索結果がありません。

C言語基礎 Professor Nishi's Lectures

N/A
N/A
Protected

Academic year: 2018

シェア "C言語基礎 Professor Nishi's Lectures"

Copied!
14
0
0

読み込み中.... (全文を見る)

全文

(1)

応用 C プログラミング演習 ( 第 9

回 )

西

(2)

今日のテーマ:テキストファイルを読み出

して,その内容を表示するプログラムを作

ろう

各自,あらかじめ,「メモ帳」を使って,

以下のテキストファイルを作っておくこと

「 SOJO UNIVERSITY 」という 1 行の文

字列を入れたファイル

ファイル名:「 mytext.txt 」.保存場所

はどこでも良い

文字単位の読み込みには fgetc を用いる

(3)

ファイル読み込み操作のプログラムの様

#include<stdio.h>

void main( ){

FILE *fp;

fp=fopen( ファイル名 , "r");

... 処理 ( fgetc を使うとよ

い ) ...

fclose(fp);

}

fp というポイン

タをファイル構造

体で宣言 ( おまじ

ない )

fp というポイン

タをファイル構造

体で宣言 ( おまじ

ない )

ファイルを

read モードで

開く

ファイルを

read モードで

開く

fp で開いたファ

イルを閉じる

fp で開いたファ

イルを閉じる

(4)

#include<stdio.h>

解答例

void main( ){ FILE *fp; char c;

fp=fopen("e:\mytext.txt", "r"); if(fp==NULL){

printf(" ファイル (mytext.txt) がオープンできませんでした. \n"); return;

}

while(1){ c=fgetc(fp); if(c==EOF){ break;

}

printf("%c",c); }

fclose(fp); }

ファイルを

read モードで

開く

ファイルを

read モードで

開く

おまじな い

おまじな い

ファイルオープンに失 敗したときの処理

ファイルオープンに失 敗したときの処理

ファイルの最後尾を見つけ る

ファイルの最後尾を見つけ る

1 文字ファイルから読 む

1 文字ファイルから読 む

読み出した 1 文字を表示す る

読み出した 1 文字を表示す る

ファイルを閉じ る

ファイルを閉じ る

永久に繰り返し 永久に繰り返し

(5)

ファイルの書き込みも同様

#include<stdio.h>

void main( ){

FILE *fp;

fp=fopen( ファイル名 , "w");

... 書き込み処理 ...(fputc 関数を使うとよい )

fclose(fp);

}

(6)

解答例

#include<stdio.h>

#include<string.h> void main( ){

FILE *fp;

char c[ ]= "What a wonderful world!"; int i,textlen;

fp=fopen("e:\writetext.txt", "w"); if(fp==NULL){

printf(" ファイル (writetext.txt) がオープンできませんでし た. \n");

return; }

textlen= strlen(c);

for(i=0;i<textlen;i++){ fputc(c[i],fp);

}

fclose(fp); }

ファイルを

write モードで

開く

ファイルを

write モードで

開く

ファイルオープンに失 敗したときの処理

ファイルオープンに失 敗したときの処理

文字列の長さを調べる処 理

文字列の長さを調べる処 理

文字列の長さ分ファイル に書き込む処理

文字列の長さ分ファイル に書き込む処理

(7)

バイナリファイルの読み書き

バイナリファイルとは?

テキストファイルとはどこが違うのか?

(8)

ファイルの種類

テキストファイル

文字データからなるファイルである

8bit の英数かな文字, 16bit のひらがな,漢字などがある

通常,○○○ .txt というファイル名になっている

このほか, html ファイル, ini ファイル, tex ファイル, c 言語のソースプログラムなどもテキストファイル形式である

1 文字ごとに ASCII コード, JIS コードなどの文字コード表 にて国際的に約束された数字 (コード )に変換されてファイ ルに格納される

「行」「改行」の概念がある→改行は CRLF であり「 \n 」 に変換される

バイナリーファイル

テキストファイル以外のファイルはバイナリ形式である.

音声,画像,映像などはバイナリーファイル

ワープロなどの文書ファイルも概ねバイナリーファイル

「行」「改行」の概念がない

(9)

使い方の違いは,パラメータだけ

FILE *fp は同じ

fp=fopen("e:\filename.bin,"rb");

fp=fopen("e:\filename.bin,"wb");

とすればよい

読み書きの関数としては

fread() と fwrite() を使う

(10)
(11)

テキストファイル読み込み練習問

テキストファイル名をキーボードから読み込み

,そのファイル名のファイルを読み込み, 1 文

字ずつ縦に並べて表示するプログラムを作れ

これに先立ち,「メモ帳」を使って,「 SOJO

UNIVERSITY 」という内容のテキストファイル

を「 mytext.txt 」というファイル名で作って

おくこと.

フォルダーの場所は自分で覚えておくこと

(12)

フローチャートはこうなります

include main() 変数の宣言文

ファイルポインターのファイル構造体宣言 ファイルのオープン

ファイルのオープンエラー時のメッセージ 繰り返し処理 ()

1 文字読み取り その他の処理 ファイルのクローズ

(13)

ヒント:プログラムの構造はこうなり

#include<stdio.h>

ます .

void main( ){ FILE *fp;

char c,filename[100];

◆[ scanf() 関数を使って,キーボードからファイル名を読み込む処理]◆ fp=fopen( 入力されたテキストファイル名 , "r");

if(fp==NULL){

printf(" ファイル ( 入力されたテキストファイル名 ) がオープンできません でした. \n");

return; }

while(1){ c=fgetc(fp); if(c==EOF){ break;

}◆[ printf() 関数を使って,一文字ずつ縦に表示する処理] ◆ }

fclose(fp); }

#include<stdio.h> void main( ){

FILE *fp;

char c,filename[100];

◆[ scanf() 関数を使って,キーボードからファイル名を読み込む処理]◆ fp=fopen( 入力されたテキストファイル名 , "r");

if(fp==NULL){

printf(" ファイル ( 入力されたテキストファイル名 ) がオープンできません でした. \n");

return; }

while(1){ c=fgetc(fp); if(c==EOF){ break;

}◆[ printf() 関数を使って,一文字ずつ縦に表示する処理] ◆ }

fclose(fp); }

(14)

#include<stdio.h>

回答例

#include<string.h> void main( ){

FILE *fp;

char c,filename[100]; scanf("%s",filename); fp=fopen(filename, "r"); if(fp==NULL){

printf(" ファイル (%s) がオープンできませんでした. \n",filename); return;

}

while(1){

c=fgetc(fp); if(c==EOF){

break; }

printf("%c\n",c); }

fclose(fp); }

参照

関連したドキュメント

節の構造を取ると主張している。 ( 14b )は T-ing 構文、 ( 14e )は TP 構文である が、 T-en 構文の例はあがっていない。 ( 14a

10) Wolff/ Bachof/ Stober/ Kluth, Verwaltungsrecht Bd.1, 13.Aufl., 2017, S.337ff... 法を知る」という格言で言い慣わされてきた

と歌を歌いながら止まっています。電気きかん車が、おけしようを

見た目 無色とう明 あわが出ている 無色とう明 無色とう明 におい なし なし つんとしたにおい つんとしたにおい 蒸発後 白い固体

(Sexual Orientation and Gender

とりひとりと同じように。 いま とお むかし みなみ うみ おお りくち いこうずい き ふか うみ そこ

○藤本環境政策課長 異議なしということでございますので、交告委員にお願いしたいと思

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から