我正在做C编程作业。我面临一个问题,即用户在scanf函数中键入的变量始终输出相同的内容。
void Update(char mCode, int mPrice)
{
printf("Enter Code: ");
scanf("%s",&mCode);
printf("Enter Selling Price: ");
scanf("%d",&mPrice);
}
int main(void)
{
....
update(stuff[i].mCode,stuff[i].mPrice);
fp = fopen("readme.txt","a+");
fprintf(fp, "%s %d\n", stuff[i].mCode, &stuff[i].mPrice);
....
return 0;
}
我在readme.txt中得到的结果是mPrice为0,mCode为空白。
最佳答案
变量mCode
和mPrice
是函数Update
中的局部变量。
这样,它们仅在此功能中本地更新。
进行如下更改:
void Update(char* mCode, int* mPrice)
{
printf("Enter Code: ");
scanf("%s",mCode);
printf("Enter Selling Price: ");
scanf("%d",mPrice);
}
int main(void)
{
....
update(&stuff[i].mCode,&stuff[i].mPrice);
fp = fopen("readme.txt","a+");
fprintf(fp, "%s %d\n", stuff[i].mCode, &stuff[i].mPrice);
....
return 0;
}