所以我的一个 friend 发给我这个,但不幸的是我的 C 技能有点生疏,所以我可能会遗漏一些简单的东西。问题存在于第二个 fscanf
命令中。
错误是[Error] expected primary-expression before '[' token
。这可能是很容易错过的东西,但我在发布之前尝试搜索了一下。感谢您的帮助!
struct materials
{
char name,product;
int code,code1,number_of_parts,quantity1,number_of_parts1,quantity2;
};
typedef struct materials mater;
int main()
{
int result(int x) ;
int number1,j,i,result1,number2,k,z;
FILE *fp;
materials* listOfMaterials;
fp = fopen("datain.txt", "r");
if (fp!=NULL)
{
fscanf(fp, "%d\n",&number1);
listOfMaterials = (mater*)malloc(number1 * sizeof( mater));
for(j=1; j<number1; j++) {
fscanf (fp, "%d %d %d %s\n", &mater[j].code, &mater[j].quantity1, &mater[j].number_of_parts, mater[j].name);
if (mater[j].quantity1 != 0)
{
mater[j].code1=(int *)malloc(sizeof(int)*mater[j].quantity1);
mater[j].number_of_parts1=(int *)malloc(sizeof(int) * mater[j].quantity1);
fscanf (fp,"%d %d\n",&mater[j].code1,&mater[j].number_of_parts1);
}
}
最佳答案
typedef struct materials mater
定义了一个名为 mater
的新类型。
在代码的后面,您尝试将它用作变量,所以我猜您的意思是定义一个变量,而不是类型:
struct materials mater;
或者只是:
materials mater;
关于c - fscanf 命令中标记前的预期主表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27341258/