2006/12/21

[C言語]ファイルから入力

■ファイル入力テスト

ソースファイルはこちら

#include <stdio.h>
#define NUM 256

int main(void)
{
FILE *fp;
char string[NUM];
char s1[NUM],s2[NUM];

//ファイルオープン
fp = fopen("inputfile.txt","r");

//オープン成否判定
if(fp == NULL){
printf("ファイルが開けませんよ?\n");
return 1;
}

printf("ファイル読み出し開始\n");
//ファイル読み出し
while(fgets(string, NUM, fp) != NULL){
printf("%s", string);
}
printf("ファイル読み出し終了\n");

//現在位置(どこから読み込むか)を先頭に戻す
fseek(fp, 0, 0);

printf("二度目のファイル読み出し開始\n");
//ファイル読み出し2
while(fscanf(fp, "%s %s", &s1, &s2) != EOF){
printf("名:%s 姓:%s\n", s1, s2);//fscanfの場合最後の改行は空白に変換されるらしい
}
printf("二度目のファイル読み出し終了\n");

//ファイルクローズ
fclose(fp);
return 0;
}

読み込むファイルはこれ

命 大雪
板 かまぼこ
だんご 笹

実行結果はこれ

ファイル読み出し開始
命 大雪
板 かまぼこ
だんご 笹
ファイル読み出し終了
二度目のファイル読み出し開始
名:命 姓:大雪
名:板 姓:かまぼこ
名:だんご 姓:笹
二度目のファイル読み出し終了

fscanfは嫌われているみたいね。
扱い方が独特らしい。 あとエラー処理が面倒くさくなるみたい。

0 件のコメント: