これが少なくとも可能かどうかはわかりませんが、要素の正確な名前を持つ変数を使用して、構造から要素にアクセスしたいと考えています。
私のプログラムは構造体のメンバーで操作を行います。ユーザーが選択する列によって異なりますが、簡単にするために (それは主なポイントではないため)、簡単な行をいくつか書きます。このようなもの:
(私はすでに別の関数でリストを埋めたとしましょう。しかし、それは重要なポイントでもありませんので、私はそれを入れません)
双方向リンク リストの各ノードに使用される構造 (各ノードは、2 つの列を持つテーブルの行のように表されます)
typedef struct row {
float A, B;
struct row *prev, *next;
} _row;
主要
int main(){
char column;
printf("Which column would you like to see? (A or B): ");
scanf("%c",&column);
show_column(column);
system("PAUSE");
}
そして機能
void show_column(char column){
_row *aux;
aux=start;
while(aux->next!=NULL){
printf("\n %.2f",aux->column);
aux=aux->next;
}
//this is because that cycle is not going to show the last node
printf("\n %.2f",aux->column);
}
「開始」も _row です。ノードを挿入するのと同じ関数でリストから開始するように変更されています。
私が知りたいのは、関数でこの部分を作成する方法です:
printf("\n %.2f",aux->column);
「列」は構造体のメンバーではありませんが、メンバーの 1 つ (A または B) の名前を含む変数であるためです。
これが必要なので、同じコードを繰り返す必要はありませんが、「if」を使用し、文字 (B) だけが異なります。
正書法と文法に何か問題がある場合は申し訳ありません。私の英語はあまり上手ではありません。助けてくれてありがとう!