ここから本文です

ファイルから文字列を取り込む方法について。 fscanfを使い、ファイルから「1行...

miy********さん

2019/8/614:27:52

ファイルから文字列を取り込む方法について。
fscanfを使い、ファイルから「1行分」文字列を取り込むにはどうすればいいですか?

char a[50];
FILE *fp;
fp = fopen("a.txt","r");
while(fscanf(fp,"%s",a) != EOF){
printf("%s",a);
}
でいいのでしょうか?

閲覧数:
23
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

2019/8/616:13:17

これだと、1行でなく全行になります。
1行ならこんな感じです。

#include <stdio.h>
int main(void){
char a[50];
FILE *fp;
fp = fopen("a.txt","r");
fscanf(fp,"%s",a);
printf("%s\n",a);
fclose(fp);
}

質問した人からのコメント

2019/8/6 22:04:09

ありがとうございます!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

2019/8/621:27:25

どうしてもfscanf()でなければいけない理由がないのならfgets()を使う場面では。

Hermitさん

2019/8/618:30:44

こんな感じでは?

#include <stdio.h>
int main()
{
    char a[50];
    FILE *fp;
    fp = fopen("a.txt", "r");
    if (fp)
        while (fscanf(fp, "%49[^\n]%*[\n]", a) != EOF)
            printf("%s\n", a);
    return 0;
}

ただし、1行が50文字以上の場合は考慮していません。
途中で改行すると思われます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる