gpt4 book ai didi

c - '(' token 之前的解析错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:22 24 4
gpt4 key购买 nike

所以我写下了这个用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 行中,我已在上面的代码中将它们标记出来。这里有什么问题?

最佳答案

-> 运算符表示访问结构指针的成员。例如

typedef struct {
int a;
} foo;

foo myFoo;
foo *fooPtr = &myFoo;
myFoo->a = 1;

代替行:

*FName->(name2+count)='\0';

您可能需要以下其中一项:

*(FName->name2 + count) = '\0';
FName->name2[count] = '\0';

关于c - '(' token 之前的解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com