执行此操作时,循环直接跳到最后并给出低于输出。
1.Generate Bill
2.Generate Bills of last 10 Purchase
Select Option:1
Enter Number of Groceries:3
Enter GroceryName:XYZ <Hit Enter>
Enter GroceryName:
Enter GroceryName:
你能否建议我在c中做更好的方法? 我已经尝试过关于堆栈溢出的某些链接,但它似乎并没有为我工作。
void main()
{
int iPrice[1000];
char cGroceName[100][100];
int iOption;
int iGrocNum;
printf("\n1.Generate Bill");
printf("\n2.Generate Bills of last 10 Purchase");
printf("\nSelect Option:");
scanf_s("%d", &iOption);
switch (iOption)
{
case 1:
printf("\nEnter Number of Groceries:");
scanf_s("%d",&iGrocNum);
for (int i = 0; i <iGrocNum; i++)
{
printf("\nEnter GroceryName:");
scanf_s(" %s",cGroceName[i]);
}
答案 0 :(得分:0)
scanf_s(" %s",cGroceName[i]);
应该是
scanf_s("%99s", cGroceName[i], sizeof cGroceName[i]);
因为scanf_s
需要第三个参数用于某些格式说明符,例如%s
表示其相应参数的最大大小。