auの日記

プログラミング初心者の日記。(auはハンドルネームです)

きのうのプログラムをまた修正した

auです。
きのうのプログラムをいじっていたらいい感じに出力できたので記事にしてみました。
最初に思いついたのは、改行されてしまうなら"\n"を読み込まないようにfscanfのところを[^\n]にすればいいのではとやったらループし、"\r"としても同じくループしました。
次に、後ろに"0@"が残ってしまうならそれを読み込まないようにしようと[^0@]としたらいい感じに表記されました。

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

int main(void) {
    FILE *fp;
    char f_name[] = "student.txt";
    char str1[32];
    
    fp = fopen(f_name, "r");

    if (fp == NULL) {
        printf("%sを開くことができませんでした\n", f_name);
        return -1;
    }

    while (fscanf(fp, "%[^0@]", str1) != EOF) {
        printf("%s\n", str1);
    }

    fclose(fp);

    return 0;
}

// 実行結果
id: 1 name: au
id: 2 name: Sato

きのうよりは良い感じに表記しれてくれたので進歩はしたと感じました。