linked list の件について
Posted: 2009年6月09日(火) 22:31
C言語を勉強して、時間が経っていなく分からない所があるので教えてください。
僕は今singly linked list を使ってstruct構造体を使ったポインタ形式のC言語のプログラミングを作っています。以下にソースコードを示します。
#include "stdafx.h"
#include "stdlib.h"
struct card {
char name[20];
int age;
struct card *next;
};
int _tmain(int argc,_TCHAR* argv[/url]){
struct card *member;
member = (struct card*)malloc(sizeof(struct card));
struct card *head,*current;
int a;
while(printf("入力しますか?\n続けつる場合は1、辞める場合はCtrl+Z\n"),scanf("%d",&a) !=EOF){
head=(struct card *)malloc(sizeof(struct card));
head->next=NULL;
printf("名前と年齢を入力してください\n");
scanf("%s%d",head->name,&head->age);
head->next=NULL;
if(head->next!=NULL)
head = head->next;
head->next=(struct card*)malloc(sizeof(struct card));
}
printf("名前:%s\n",head->name);
printf("年齢:%d\n",head->age);
return 0;
}
目指しているのは、名前と年齢を無限に打ち込み、Ctrl+Zを入力するとプログラムが終了して今までに打ってきた名前と年齢が表示されるというプログラミングを組みたいんですが、コンパイルして実行すると最後に入力した名前と年齢しか表示されません。
どのようなソースソースコードにすればいいのか教えていただけませんか?
*currentを使うのかもしれませんが、さっぱり分かりません。
僕はVisual Studio 2008を使用しています。
内容がわかりにくいかもしれませんが、よろしくお願いします。
僕は今singly linked list を使ってstruct構造体を使ったポインタ形式のC言語のプログラミングを作っています。以下にソースコードを示します。
#include "stdafx.h"
#include "stdlib.h"
struct card {
char name[20];
int age;
struct card *next;
};
int _tmain(int argc,_TCHAR* argv[/url]){
struct card *member;
member = (struct card*)malloc(sizeof(struct card));
struct card *head,*current;
int a;
while(printf("入力しますか?\n続けつる場合は1、辞める場合はCtrl+Z\n"),scanf("%d",&a) !=EOF){
head=(struct card *)malloc(sizeof(struct card));
head->next=NULL;
printf("名前と年齢を入力してください\n");
scanf("%s%d",head->name,&head->age);
head->next=NULL;
if(head->next!=NULL)
head = head->next;
head->next=(struct card*)malloc(sizeof(struct card));
}
printf("名前:%s\n",head->name);
printf("年齢:%d\n",head->age);
return 0;
}
目指しているのは、名前と年齢を無限に打ち込み、Ctrl+Zを入力するとプログラムが終了して今までに打ってきた名前と年齢が表示されるというプログラミングを組みたいんですが、コンパイルして実行すると最後に入力した名前と年齢しか表示されません。
どのようなソースソースコードにすればいいのか教えていただけませんか?
*currentを使うのかもしれませんが、さっぱり分かりません。
僕はVisual Studio 2008を使用しています。
内容がわかりにくいかもしれませんが、よろしくお願いします。