int Input_data(struct GOODS goods[], int nInputtedNum) {
int result;
while (1) {
//提示语句放到循环内,可能更好一些。
printf("请输入数据(END结束入库),格式如下\n");
printf("货物名 同类产品的数量 价格\n");
//scanf的返回值警告,可自行决定
scanf("%s,%d,%f", &goods[nInputtedNum].name, &goods[nInputtedNum].num, &goods[nInputtedNum].price);
//如果用户在一行的开始输入了END,则表示用户要结束入库操作
if (!strcmp("END", goods[nInputtedNum].name))
break;
//以下为处理scanf返回值的例子:即未成功输入一个数,则结束输入
if (1 != scanf("%f", &goods[nInputtedNum].price))
break;
nInputtedNum++; //已完成一数据输入,库存数+1
}
return nInputtedNum;
}
这是输入数据的代码
void Print_data(struct GOODS goods[], int nInputtedNum) {
//打印库存列表
//可以自已写一个打印表头的语句
for (int i = 0; i < nInputtedNum; i++) {
//如何让打印的内容对齐,可自己思考??
printf("%-5s %-5d %.3f\n", goods[i].name, goods[i].num,goods[i].price );
}
printf("Press any key to continue...\n");
char ch = _getch(); //仅仅是屏幕暂停,此输入值无其它使用价值
return;
}
这个是读取输入数据的代码.
想问一下哪里错误了,为什么程序总是把空格当成赋值给变量num,出现这种情况需要怎样更改呢?