所以我的一个朋友发给我这个,但不幸的是我的C技能有点生疏,所以我可能会错过一些简单的东西。第二个fscanf
命令中存在该问题。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);
}
}
请整理代码的缩进 - 使其可读。 – 2014-12-07 09:19:14
[如何使用scanf \ fscanf读取一行并解析为变量?](http://stackoverflow.com/questions/5204625/how-to-use-scanf-fscanf-to-read-a-线和解析到变量) – jww 2014-12-07 09:23:11
对不起,我刚刚在这里注册。我能做些什么来使其更具可读性? – ahcomm 2014-12-07 09:25:28