【发布时间】:2009-05-01 18:57:24
【问题描述】:
我正在尝试编写一个从外部文件(字符串字符串 int,每行)读取文本的程序。 struct 是在 main 函数之外定义的:
typedef struct Person {
char fname[15];
char lname[20];
unsigned long int birth;
} clovek;
我不需要“clovek”作为数组,因为每一行数据都可以被覆盖。 线为红色以缓冲:
fgets(buffer, 50, datafile);
然后我想将它解析为结构,但这就是我的问题出现的地方:
int i = 0;
while (buffer[i] != ' ') {
clovek.fname[i] = buffer[i];
i++;
}
这给了我一个错误:expected identifier or '(' before '.' token
我也想使用此代码进行调试,但它也给出了另一个错误:
printf("fname, %s\n", clovek.fname);
错误:'clovek' 之前的预期表达式
我的猜测是我完全误解了结构的使用。
【问题讨论】:
-
除了一个你得到的答案之外,所有其他答案都提供了另一个令人恐惧的例子,说明人们是如何弄错非常基本的 C 语法的。
-
让我添加另一个复杂性问题,即结构中的元素对齐。 Google 是您的朋友。
-
更不用说等待发生的缓冲区溢出以及缺少使 struct Person 的成员作为 C 字符串无用的 nul 终止。