ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ただいまC・C++勉強中!コミュのファイル操作について

  • mixiチェック
  • このエントリーをはてなブックマークに追加
 こんにちは。今、ファイル操作について学んでいます。
 ファイル「sourse.txt」から(aaa aaa.)という文字列を読み込み、その文字列と、文字列の長さを表示させるプログラムを作成してみたのですが、表示結果が
 bun = aaa
bunlen = 3 (←文字列の長さです)
となり、期待している結果を表示させることができません。
 自分が書いたプログラムは以下のとおりなのですが、どこがおかしいか教えていただけないでしょうか。おそらくは空白文字が混ざっているのが問題だと思うのですが…。


#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define BunSIZE 30

int main(void)
{
FILE *fp;
int m;
char bun[BunSIZE];

fp = fopen("source.txt","r");

if ((fp = fopen("sourse.txt", "r")) == NULL){
fprintf(stderr, "Can't Open File\n");
exit(2);
}
fscanf(fp, "%s", bun);


m = strlen(bun);
printf("bun = %s\n", bun);
printf("bunlen = %d", m);

fclose(fp);

return(0);
}

コメント(3)

fgetsじゃダメなんですかね?
fgets(bun, BunSIZE, fp);
fscanf 関数の %sは 空白文字が出現すると、そこで読み込みを停止します。fscanf関数は業務では使用禁止というか・・・使ったらその場で解雇通告されます。(協力会社の場合)当社は制御システム組んでいるんで、かな〜り厳しいです。
ワンダーうたげやんさんが正しい。
 あ、ちゃんと文字読み込みました!
 なるほど…、次回からは気をつけていかないと。勉強になりました。ありがとうございます( ´∀`)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ただいまC・C++勉強中! 更新情報

ただいまC・C++勉強中!のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。