`你能帮我吗,代码看起来像这样 基本:
#include<stdio.h>
int main()
{
char name[100];
int age;
clrscr();
printf("Enter Your Name: \n");
gets(name);
printf("Enter Your Age: ");
if(scanf("%d", &age)!=1)
{
goto basic;
}
return 0;
}
这段代码基本上如果你在年龄中输入任何非整数值,它就会返回。但是当它返回时 printf 输入的你的名字不能被修改
如果我去 main(); 有什么办法吗?或者转到基本我将能够输入一些内容来输入您的名字?`
while
或 do-while
循环重复询问姓名和年龄,直到提供有效的输入。#include <stdio.h>
int main() {
char name[100];
int age;
int status;
do {
printf("Enter Your Name: \n");
fgets(name, 100, stdin); // Using fgets instead of gets for safety
printf("Enter Your Age: ");
status = scanf("%d", &age);
while (getchar() != '\n'); // Clear the input buffer
} while(status != 1); // Repeat if age input is invalid
return 0;
}
在此版本中,
do-while
循环将继续询问姓名和年龄,直到输入有效的年龄整数。请注意,使用 fgets
代替 gets
,因为 gets
不安全且已弃用。
goto
跳回到输入过程的开始位置。