こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C言語のファイル読み込みに関して。

英文を入力したテキストファイルを読み込むプログラムをつくっているのですが、
ファイル読み込みが上手くできません。

#include<stdio.h>

main()
{

char filename[33];
char sty[512];
FILE *fp;

printf("FILENAME: ");
fgets(filename, 33, stdin); //読み込むテキストファイルを指定

fp = fopen(filename,"r");
if(fp == NULL){
printf("Can't open the file!\n");
return -1;
}

fgets(sty, 512, fp);

fclose(fp);
printf("%s\n",sty);
}

このプログラムなのですが、どうしても"Can't open the file!"が表示されてしまいます。
どうすればいいのでしょうか?

投稿日時 - 2014-07-14 09:52:44

QNo.8677555

すぐに回答ほしいです

質問者が選んだベストアンサー

fgetsでfilemaneを入力した際、filenameには最後に\nが入っています。
よって、
fgets(filename, 33, stdin); //読み込むテキストファイルを指定
filename[ strlen(filename)-1]='\0';

というふうに潰しておく必要があります。

投稿日時 - 2014-07-14 12:24:39

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

おまけですが, fgets は必ずしも改行を読み込まないことにも注意が必要です.

投稿日時 - 2014-07-14 12:49:02

ANo.2

1. カレントディレクトリに開きたいファイルがあるか確認する

2. fgetsは改行コードを含むのでscanfなどを使う

投稿日時 - 2014-07-14 12:25:38

あなたにオススメの質問