我是编程新手,搜索和搜索后,我得到了一些代码来工作(部分),我可以创建一个结构但我无法打印字符串字段:/ C - 结构数组的printf字符串
#include <stdio.h>
#define MAX 100
struct vehiculos{
float peso;
int hora;
char *id;
int ferry;
};
void asignar(struct vehiculos llegada[MAX] ...) { // Here i have more parameters, but they are useless in this question...
int id,i;
i=0;
while(!feof(input_file)){
fscanf(input_file,"%f %d %s %d",&llegada[i].peso,&llegada[i].hora,id,&llegada[i].ferry);
llegada[i].id = id;
i++;
}
}
int main(){
struct vehiculos llegada[MAX];
FILE *entrada;
entrada = fopen("proy1.txt","r");
asignar(llegada...);
return 0;
}
我的问题是,一切工作正常,在“asignar”功能,但如果我试图打印车辆的ID外功能,它只是打印垃圾值,但其他值如比索,霍拉和渡轮打印正确(功能外)
此作品:
void asignar(...){
...
printf("%s", llegada[i].id);
...
}
这不起作用:
int main(){
...
printf("%s", llegada[i].id);
...
}
而且我的编译器说有在代码中没有错误,所以我不知道什么是这里的问题
谁能帮助我?这将是伟大的,谢谢:)
您遇到不确定的行为。你没有分配'id'。另外,看看[**为什么是“while(!feof(file))”总是错误的?**](http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-错误)。 –
你正在尝试'llegada [i] .id = id;'将'int'赋给'char *' – snr
你的文件读取循环是错误的:http://stackoverflow.com/questions/5431941/while-feof-file - 是总是错的 – Barmar