-1

学生の記録などの情報を含むファイルを開き、構造体を使用して印刷する際に問題が発生しているようです。

次のようなtxtファイルに生徒の名前、ID、および成績があるとします。

casnova 195843 A
and so on...

構造体を次のように定義しました。

struct student {
    char name[20];
    int ID;
    char Grade;
};

構造体を使用してこのファイルをロードしたいのですが、何をすべきか迷っています。

私の質問は、質問の仕方を尋ねることではありませんが、基本的にはCプログラミングにまだ慣れていないため、基本的に出発点です。ヒント/リンクは役に立ちます:)

4

2 に答える 2

2

私の質問は、質問の仕方を尋ねるのではなく、基本的に 出発点です

  • struct studentの配列の配列を定義するchar
  • を使用fopenしてファイルを開きます
  • ループで使用fgetsして、while一度に 1 行ずつ読み取ります (これが char 配列の目的です)。
  • sscanfその行の構成メンバーを抽出するために使用します。によって返される値をテストしますsscanf。または、必要に応じてトークンを使用strtokおよび変換することもできます。
于 2012-05-14T11:31:49.983 に答える
0

古い回答はトピックから外れており、消去されます。


それがテキストファイルであることに気づきませんでした。

次の 2 つのことの答えを見つけたい場合もあれば、既に答えを知っている場合もあります。

  1. fscanfでテキストファイルを読む
  2. 構造体変数に日付を書き込む

ファイルの内容が次のような場合:

Tom 123 A
Dick 456 B

でファイルを開き、fopen呼び出さFILE *fpた .

struct student s;

fscanf(fp, "%s %d %c", s.name, &s.ID, &s.Grade);

ファイル内のコンテンツで構造体を埋めます。

ただし、ファイルの内容が正しいことを確認する必要があります。または、ファイルの内容を複雑に解析する必要があります。

于 2012-05-14T11:31:48.690 に答える