在二维数组中接受多个字符串?

时间:2017-04-27 15:32:36

标签: c arrays multidimensional-array

执行此操作时,循环直接跳到最后并给出低于输出。

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]);

        }

1 个答案:

答案 0 :(得分:0)

scanf_s(" %s",cGroceName[i]);

应该是

scanf_s("%99s", cGroceName[i], sizeof cGroceName[i]);

因为scanf_s需要第三个参数用于某些格式说明符,例如%s表示其相应参数的最大大小。

请参阅scanf_s documentation