Die Werte von jedem Knoten in meiner verknüpften Liste sind jetzt alle gleich 'temp', obwohl ich möchte, dass sie getrennt bleiben. Wenn "temp" in der letzten Iteration der while (1) Schleife "STOP" zugewiesen wurde, werden alle anderen Werte als "STOP" ausgegeben.Wie man den Wert char [] einer Struktur dem Wert einer Datei zuweist, ohne dass es ein Zeiger ist?
//*******************
//* GEORGE TANGEN *
//* HW 9 *
//*******************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node{
struct node *next;
struct building *payload;
};
struct building{
char *name;
struct arc *list[];
};
struct arc{
int weight;
struct building *start;
struct building *end;
};
int main(){
struct node *head;
struct node *trace;
head = malloc(sizeof(struct node));
head->payload = malloc(sizeof(struct building));
head->payload->name = "Head";
int k;
trace = head;
for(k=0;k<10;k++){
trace->next = malloc(sizeof(struct node));
trace = trace->next;
trace->payload = malloc(sizeof(struct building));
trace->payload->name = "hi";
}
FILE *f1;
int i,j;
char *op = {"hw9.data"};
f1 = fopen(op,"r");
if(f1==NULL){
printf("No File!");
return 0;
}
trace = head;
char temp[200];
while(1){
fscanf(f1, "%s", temp);
if((strcmp(temp, "STOP"))==0){
break;
}else{
printf("INPUT: %s\n", temp);
trace->payload->name = temp;
printf("OUTPUT: %s\n", trace->payload->name);
printf("HEAD: %s\n", head->payload->name);
trace = trace->next;
}
printf("%s\n\n", temp);
}
trace = head;
for(k = 0; k<10;k++){
printf("OUTPUT: %s\n", trace->payload->name);
trace = trace->next;
}
fclose(f1);
return 0;
}
Ah , Danke! Das hat funktioniert! –