C言語学習中のため、誤った言い回し等が多数含まれているとは思いますが、何卒ご容赦いただけると幸いです。
[1] 質問文
[1.1] 自分が今行いたい事は何か
テキストファイルlist.txtの「番号」「名前」を構造体変数st[]に格納し、都度printf関数でコンソールに出力する問題で、表題のとおり、st[0]のアドレス番地を代入した構造体ポインタ変数ptを利用して解きたいと思っています。
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
#include <stdio.h>
typedef struct student{
int id;
char name[20];
}STUDENT;
int main(void)
{
int i;
STUDENT st[10];
STUDENT * pt = &st[0];
FILE * fp = fopen("list.txt","r");
for(i=0; fscanf( fp,"%d %s",&((*pt+i).id),&((*pt+i).name) )!=EOF; i++){
printf( "%d %s\n",((*pt+i).id),(*pt+i).name );
}
fclose(fp);
return 0;
}
101 tanaka
102 suzuki
103 satoh
以下略
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載
エラーメッセージは下記のとおりです↓
ファイル「D:/EasyIDEC/project/test008/main.c」の「14行目」で記述エラーを発見しました。
「lvalue」を付け忘れています。
[1.4] 今何がわからないのか、知りたいのか
fscanf文とprintf文の後ろに何を入れたらいいかが分かりません。
ネットを見たら「ドット演算子ではなくアロー演算子を使え」という記述を多数見かけますが、学校の先生によればドット演算子でもできるそうです。しかし分かりません。
[2] 環境
[2.1] OS : Windows10
[2.2] コンパイラ名 : 学習用C言語開発環境(EasyIDEC)
[3] その他
・どの程度C言語を理解しているか
初心者です。