c - 如何在c中输入和扫描多个字符

标签 c authentication

我想输入多个 printfs,但我没有机会输入。 我只能输入 1,但之后它就结束了程序。我尝试使用 do while 但它不起作用

int main()
{
  int number;
  char username[30]="";
  char fullName[30]="";
  char password[30]="";
  printf("Do you want to log in(1) or register (2)? \n");  
  scanf("%d",&number);
  if (number==2)
  {
    printf("username : ");
    scanf("%s",&username);
    printf("Full name : ");
    scanf("%s",&fullName);
    printf("Password : ");
    scanf("%s",&password);
    printf("Repeat password : ");
    scanf("%s",&password);
  }
  return 0;
}

最佳答案

使用fgets()将整行读取到适当大的缓冲区中,然后解析它。

请注意,%s 将停在第一个空白字符处,因此“Mr X”的全名将在输入缓冲区中留下“X”,从而获取密码等。这确实不是一种可靠的获取输入的方式。

关于c - 如何在c中输入和扫描多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47816312/

相关文章:

C 编程 - 我对这些函数做错了什么?

c - 链接列表错误 "Segmentation Fault"Core Dumped

Java HTTP 授权?

c++ - 如何使应用程序线程安全?

C用数学函数初始化三维数组?

c++ - 使用C在定点运算中使用32位数据进行64位操作

php - 无法重定向到 Laravel 5.2 中的路径

perl - 尝试使用 Net::SMTP::SSL 发送经过身份验证的电子邮件

java - 使用 Java 以编程方式登录具有不同 key 表的多个 kerberos 领域

asp.net - ASP .NET MVC 在工作期间进行身份验证和保持用户身份验证的最佳实践