Tag: validation

将用户输入限制为8位数

我希望用户输入一个8位数的帐号。 我有的代码似乎适用于所有内容,除非你有多个字母,即:’bbb’作为输入。 如果发生这种情况,它会运行while循环3次,显示printf,但不要求另一个输入。 关于如何解决这个问题的任何意见,或者更好的方法都是受欢迎的! 现在,我正在使用: #include int main() { int return_val = 0; int account_number = 0; int within_range = 0; printf(“Please enter your 8 digit account number:\n”); return_val = scanf(“%d”, &account_number); getchar(); getchar(); if((account_number > 9999999) && (account_number 9999999) && (account_number < 99999999)) { within_range = 1; } } printf("Account #: %d", account_number); }

getopterror handling多个逗号分隔值

如何为从getopt的命令行接收的逗号分隔值的多个组合validation字符串变量? case ‘a’ : flaga=1; alg = optarg; printf(“you entered option -a \”%s\”\n”, optarg); if(strcmp(alg,”lr”) == 0 ) { ….//valid } else if(strcmp(alg,”lda”) == 0 ) { ….//valid } else if(strcmp(alg,”knn”) == 0 ) { …//valid } “”””” “””” else { printf(“wrong value entered for option -a \n”); exit(); } 选项-a可以接受这些值:“knn”,“lda”,“lr”,“kart”,“nb”,“svm”。 如果用户仅传递单个值,则上述代码可以完美地处理错误。 但是选项-a可以接受多个值,以逗号分隔, Eg : […]

C中的输入validation

我正在用C编写程序。在程序中,用户必须选择一个数字,1,2或3.我想构造代码,以便当用户输入的数字不是1时, 2或3,他/她将被告知“无效选择 – 再次选择”然后他们将被带回到程序的开头: int main() { int choice; char response, Y, N; printf(“Choose a shape from the following:\n 1.Sphere\n 2.Cone\n 3.Cylinder\n”); scanf(“%d”,&choice); if(choice==1||choice==2||choice==3) { printf(“Enter the radius, r\n”); } else printf(“Invalid selection, choose again.\n”); } 我想要的是,在“无效选择,再次选择”出现后,用户返回到程序的开头,这样他们就可以再次输入他们的选择。 我该怎么办?

Scanfvalidation

有人可以帮我validation我在下面的Scanf的输入。 如果Scanf在不正确的范围内或者不是整数,我希望程序要求重新输入数据。 我在使用if语句之前放入了do while循环,但是当我编译它时,第一个printf和scanf只是循环 #include #include int MenuLoop = 0; int MaxPackets = 4; int currentPackets= 0; int menu; /********************************************************* * Node to represent a Cat which includes a link reference* * a link list of nodes with a pointer to a Cat Struct * * would be better but this is for illustartion only! […]

安全地添加整数,并certificate安全性

编程课程作业要求 写一个(安全)函数,添加两个整数,和 表明该function是安全的。 以下代码代表我的解决方案。 我不是C标准(或正式validation方法)的专家。 所以我想问:有更好(或不同)的解决方案吗? 谢谢 #include /* Try to add integers op1 and op2. Return 0 (success) or 1 (overflow prevented). In case of success, write the sum to res. */ int safe_int_add(int * res, int op1, int op2) { if (op2 op2 */ /* 0 < – op2 */ /* INT_MIN < […]

如何根据参数列表validation用户提供的printf格式字符串?

我有一个数字列表,并希望为我的用户提供输入printf样式格式字符串的选项,以指定数字的输出方式。 如何根据参数列表validation用户提供的格式字符串? 格式错误的输入不应该使程序崩溃,我想避免任何格式字符串攻击。 我不关心validation是否仅处理POSIX或编译器特定超集中指定的格式选项。 是否有任何图书馆电话要求,或者我必须自己写吗? 澄清:我需要的是这样的: float var1, var2, var3, var4; // var1 .. var2 are given by the program const char * userSupplied = getFormatStringFromUser(); if( isValidFormat( userSupplied, “float”, “float”, “float”, “float” ) ) printf( userSupplied, var1, var2, var3, var4 ); else printf( “The format you gave was invalid!\n” ); 在这个例子中,我知道我有四个花车。 我想允许任何只引用0到4个浮点数的格式。 因此isValidFormat()应允许以下格式字符串: “%f%g%e%.1f” […]

ASP.NET中的文本框的正则表达式validation器问题

我的代码中有RegularExpressionValidator的问题! 我的html页面中有两个文本框,在代码中我有sql命令将参数插入到DB中,问题是如果我在文本框中放置一个特殊字符,sql会因为我需要validation器而停止,所以我试着像这样validation。 Insert the files number. Whats the users Name validation器定义为: 但加载时忽略了我的validation表达。 请错过什么。 谢谢

C编号猜测游戏与isdigit()validation

我正在从我的教科书中解决挑战问题,我应该在1-10之间生成一个随机数,让用户猜测,并用isdigit()validation他们的响应。 我(大多数)得到了程序来使用下面的代码。 我遇到的主要问题是使用isdigit()需要将输入存储为char,然后我必须在比较之前进行转换,以便比较实际数字而不是数字的ASCII代码。 所以我的问题是,由于此转换仅适用于数字0 – 9,我如何更改代码以允许用户成功猜出10,这是生成的数字? 或者,如果我希望游戏的范围为1-100,那该怎么办呢? 如果我使用的可能范围大于0-9,是否可以使用isdigit()validation输入? validation用户输入的更好方法是什么? #include #include #include #include int main(void) { char buffer[10]; char cGuess; char iNum; srand(time(NULL)); iNum = (rand() % 10) + 1; printf(“%d\n”, iNum); printf(“Please enter your guess: “); fgets(buffer, sizeof(buffer), stdin); sscanf(buffer, “%c”, &cGuess); if (isdigit(cGuess)) { cGuess = cGuess – ‘0’; if (cGuess == iNum) […]

如何从用户那里获得一个号码

我只是在学习C,并且到目前为止已经使用javascript和php等语言,我无法将我的一些思考步骤转换为C的可能性。我正在编写的程序(听起来比实际更大)使用一个输入菜单,让用户选择一个选项。 选项可以是1,2或3。 现在,我正在做: int menu; scanf(“%d”, &menu); 哪个工作正常。 但是,输入字符串的字符会导致问题。 在javascript中,我只是将菜单变量与选项匹配: if ( menu != 1 && menu != 2 && menu != 3 ){ menu = 4; // a switch later on will catch this. } 但是,这似乎不适用于C. 我该怎么办呢?

使用scanf进行validation检查在循环内不起作用

我正在尝试创建一个函数来检查用户的输入,并让他们再次尝试,以防他们输入错误的输入。 因此,当我在函数中输入错误的输入时,它会将我抛入无限循环。 我该怎么做才能解决它? 我被允许只使用getchar和scanf进行用户输入。 int sizeOfField() { int size,inputCheck,flag=0; while (!flag) { inputCheck= scanf(” %d “, &size ); if ( inputCheck < 1 ) { printf( "Invalid Input!\n" ); printf( "Try agian"); } else if (inputCheck == 1) flag=1; } return size; }