我正在尝试从文本文件中取数字来放置struct的组件。
typedef struct{
int x;
}A;
尝试1 :( fp是具有读取模式的文件指针)
void foo(A *a){
fscanf(fp,"%d",&(*a).x);
}
尝试2:
void foo(A *a){
fscanf(fp,"%d",a->x);
}
还有一些尝试类似于这些。它是分段错误或编译错误。似乎我在标记*
,&
,->
方面遇到了一些问题。
答案 0 :(得分:1)
以下是正确的。它应该工作。
void foo(A *a){
fscanf(fp, "%d", &(*a).x);
}
以下内容不正确。
void foo(A *a){
fscanf(fp, "%d", a->x);
}
a->x
是a->x
的值,而不是a->x
的地址,这是您需要的。
您可以将其更改为以下内容,它应该可以正常工作。
void foo(A *a){
fscanf(fp, "%d", &(a->x));
}