gpt4 book ai didi

c - 验证来自另一个函数的数组变量输入

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:50 25 4
gpt4 key购买 nike

你好,对于我的程序,我必须在另一个函数中验证多个数组的输入。所以说我有一个数组:barcode[MAX]。我希望用户将他们的条形码输入到这个数组中,所以无论他们拥有多少条形码,他们都会将其输入到 barcode[MAX] 变量中。我需要验证这个输入以确保它是正确的格式,所以基本上大于 0,没有尾随字符。并且此验证需要来自单独的函数。

所以它会是这样的:

for (i = 0; i < MAX; i++)
{
printf ("Barcode: ");
barcode[MAX] = validate();

printf ("Price: ");
price[MAX] = validate();
}

这将在主函数中,调用用户输入他们的条形码/价格并在单独的函数中验证输入。但我不确定如何为数组输入编写验证函数。我之前只为一个简单的变量写过一个,但数组让我感到困惑。我以前的验证代码是这样的:

do
{
rc = scanf ("%llf%c", &barcode[MAX], &after);

if (rc == 0)
{
printf ("Invalid input try again: ");
clear();
}
else if (after != '\n')
{
printf ("Trailing characters detected try again: ");
clear();
}
else if ()
{

}
else
{
keeptrying = 0;
}

} while (keeptrying == 1);

但这看起来不适用于数组变量,而这正是我将用于非数组变量的代码。我怎样才能解决这个问题?这两个数组也是不同的数据类型。 barcode 是 long long 变量,price 是 double 变量。

最佳答案

您想遍历数组,所以是 barcode[i] 而不是固定位置 MAX (barcode[MAX])。

for (i = 0; i < MAX; i++)
{
printf ("Barcode: ");
barcode[i] = validate();

printf ("Price: ");
price[i] = validate();
}

将 long long float 替换为 float,you can't use c 中的 long long float。

验证可以是这样的:

int validate()
{
char after;
float input;
int rc, keeptrying = 1;
do
{
printf("Give me a code bar :\n");
rc = scanf ("%f%c", &input, &after);

if (rc == 0)
{
printf ("Invalid input try again: \n");
while ( getchar() != '\n' );
}
else if (after != '\n')
{
printf ("Trailing characters detected try again: \n");
while ( getchar() != '\n' );
}
else
keeptrying = 0;

} while (keeptrying == 1);
return input;
}

关于c - 验证来自另一个函数的数组变量输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com