【发布时间】:2014-04-11 15:38:43
【问题描述】:
所以我写了这个程序来读取 C 中不可变长度的输入。代码是这样的:
#include<stdio.h>
#include<stdlib.h>
struct ch{
char c;
struct ch *next;
} *first;
struct Member {
char *name1,*name2;
struct Member *Next;
} *FName;
int scan(void);
int main()
{
first=NULL;
FName=NULL;
scan();
return 0;
}
int scan(void)
{
int M,i,count;
struct ch *O;
O=(struct ch *)malloc(sizeof(struct ch));
O=first;
scanf("%d",&M);
for(i=0;i<M;i++)
while(scanf("%c",&first->c))
{
O=first->next;
if(first->c==' ')
if(!count)
{
struct Member *oldfirst;
oldfirst=(struct Member *)malloc(sizeof(struct Member));
oldfirst=FName;
FName->name1=(char *)malloc((count+1)*sizeof(char));
for(i=0;i<count;i++)
{
*FName->(name1+i)=first->c; /*Error*/
first=first->next;
}
*FName->(name1+count)='\0'; /*Error*/
FName->Next=oldfirst;
first=NULL;
count=0;
}
if(first->c=='\n')
if(!count)
{
FName->name2=(char *)malloc((count+1)*sizeof(char));
for(i=0;i<count;i++)
{
*FName->(name2+i)=first->c; /*Error*/
first=first->next;
}
*FName->(name2+count)='\0'; /*Error*/
first=NULL;
count=0;
}
O=first;
count++;
}
return 0;
}
这是问题的一部分,我首先需要获取 2*M 字符串,每行有两个字符串,用空格分隔。
在使用 GCC 编译时,我收到错误:“parse error before '(' token”。此错误出现在 4 行中,我已在上面的代码中将它们标记出来。这里有什么问题?
【问题讨论】:
标签: c compiler-errors