-1
私は、ファイルから単語を読み込んで、その中から別のものをリンクリストに追加するプログラムをCで書いています。しかし、私は正しい結果を得ていません。単語がリストに存在するかどうかを調べるのに問題があります。どんな助けもありがたいです。ありがとう。リンクリストにファイルから読み込んだ異なる文字列を挿入する
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
struct list_el {
char val[30];
struct list_el * next;
};
typedef struct list_el item, item2;
void main() {
item * curr, * head, * curr2, * head2;
FILE *fp;
char words[30];
int i;
head = NULL;
head2 = NULL;
if ((fp=fopen("file.txt","r"))==NULL)
printf("cannot open file\n");
i=0;
while (fscanf(fp,"%s",&words)!=EOF) {
if (i!=0)
while(curr2) {
if (!strcmp(words,curr2->val)){
break;
}
curr2 = curr2->next ;
}
if (curr2==0 || i==0){
curr = (item *)malloc(sizeof(item));
curr2 = (item2 *)malloc(sizeof(item2));
strcpy(curr->val,words);
strcpy(curr2->val,words);
curr->next = head;
curr2->next = head2;
head = curr;
head2 = curr2;
}
i++;
}
while(curr) {
printf("%s\n", curr->val);
curr = curr->next ;
}
fclose(fp);
}
@StamatisPapadopoulos '項目* =ノードのmalloc(はsizeof(*ノード));' '項目と同じである* =ノードのmalloc(はsizeof(アイテム));'。 – BLUEPIXY
οκ、しかし何も印刷されません:P –
@StamatisPapadopoulos [DEMO](http://ideone.com/c6L1JV) – BLUEPIXY