所以,我有一些代码可以逐行读取文件。
这是那个代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct alumnus {
int *yearGraduated;
char firstName[30];
char lastName[30];
} Alumns;
void printer ( Alumns *a ) {
printf("Year: %*d", a->yearGraduated);
printf(" First Name: %s", a->firstName);
printf(" Last Name: %s", a->lastName);
}
int main(int argc, const char * argv[])
{
Alumns a;
char *home = getenv("HOME");
char path[100] = "/Desktop/Alumni.txt";
strcat(home, path);
FILE *fp;
fp = fopen(home, "r");
while ( fp ) {
fscanf(fp, "%d,%s,%s", a.yearGraduated, a.firstName, a.lastName);
printer(&a);
}
return 0;
}
我在打印机功能的第 2 行收到错误
printf("Year: %d", a->yearGraduated);
我的 IDE 对这一行说了以下内容:
格式指定类型“int”,但参数的类型为“int *”
另一个错误仅在我编译代码时出现。错误在行:
a.yearGraduated, a.firstName, a.lastName);
我的 IDE 对此进行了说明:
线程 1:EXC_BAD_ACCESS (code=1, address=0x0)
是的,该文件存在,是的,它的格式正确。
关于如何调试的任何想法?
有人建议我使结构内的 int 不是指针,但我不确定。