アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

#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!"が表示されてしまいます。
どうすればいいのでしょうか?

A 回答 (3件)

fgetsでfilemaneを入力した際、filenameには最後に\nが入っています。


よって、
fgets(filename, 33, stdin); //読み込むテキストファイルを指定
filename[ strlen(filename)-1]='\0';

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

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

    • good
    • 0

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



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!