验证C编程中的输入字段

时间:2017-04-19 18:44:09

标签: c

我想验证我输入的字段,并显示错误。 这是我在C中的代码:

struct student
{
    char name[15];
    char age[3];
};

struct student st;


printf("enter your name: ");
scanf("%s", st.name);
fprintf(ptrShkrues, "%5s", st.name);

printf("enter your age: ");
scanf("%s", st.age);
fprintf(ptrShkrues, "%5s", st.age);

所以我需要检查它是char还是int并显示printf。在INT保存我的年龄是否更好?以及如何验证它?

2 个答案:

答案 0 :(得分:0)

尝试fgetssscanf

char buffer[1000];
char name[6];
int age;
fgets(buffer, sizeof buffer, stdin); /* needs error checking */
if (sscanf(buffer, "%5s%d", name, &age) != 2) /* error */;

答案 1 :(得分:0)

假设您的姓名和年龄是char []类型,您可以选择

int flag=1;

    for(i=0;i<size&&flag==1;i++){//size is the length of n
        if( isdigit(name[i]) )
            flag=1;
        else
            flag=0;
    }
if(flag==1)
   printf("Is an integer");
else
  printf("It has characters");