C数组 - 对错误输入的错误响应?

时间:2017-01-27 17:07:15

标签: c arrays for-loop

我对编程课程(初级水平)有所帮助,而且我唯一无法做到的事情(至少根据老师的说法)是其中一个函数处理了错误的输入。它看起来像这样:

void Modify(int id[], char str[100][30], int kredit[], int count)
{
    system("cls");
    int Search_value;
    bool flag = false;
    printf("Enter ID to be modified (1-100):: ");
    scanf("%d", &Search_value);
    for (int i = 0; i < count; i++)
    {
        if (id[i] == Search_value)
        {
            printf("Old record\n");
            printf("ID :: %d \n", id[i]);
            printf("Name :: %s \n", str[i]);
            printf("Kredit :: %d\n", kredit[i]);
            printf("New record\n");
            printf("Name :: ");
            scanf("%s",str[i]);
            printf("Kredit :: ");
            scanf("%d", &kredit[i]);
            printf("New data saved\n");
            flag = true;
        }
    }
    if (flag == false)
    {
        printf("ID not found\n");
    }
    system("pause");

描述应如何完成修改的部分任务:

c)修改数据

  • 根据点b)进行搜索和显示(不同的功能 - &gt; Search_value)
  • 如果找到记录,请询问新数据
  • ID无法修改!
  • 将修改后的记录保存到数组中,覆盖旧记录

编译并运行没有任何问题。或者至少我没有注意到。如果需要,我可以添加更多代码。

1 个答案:

答案 0 :(得分:2)

处理错误意味着要考虑可能出错的事情。快速浏览一下程序后,

如果我输入的值超出了要求的范围,会发生什么? 如果计数大于应该或负数,会发生什么? 如果kredit小于它应该会发生什么? 如果str中的字符串没有NUL终止符会发生什么?

还可以找到其中一些。通常,您不必在每次函数调用时验证每个参数(尽管它可能有助于在开发期间查找错误),但您绝对应该验证用户输入。