这段代码保存了12位数字。并且名称为“with spaces”但是每当我运行代码时,它都会获取int
输入,但会跳过名称部分。我做错了什么?
#include<stdio.h>
#include<stdlib.h>
int main(){
char name[20];
unsigned long long int x;
printf("enter x:\n");
scanf("%lld",&x);
printf("enter name\n");
scanf("%[^\n]s",&name);
printf("name = %s",name);
return 0;
}
答案 0 :(得分:0)
输入x的值后,scanf
从输入缓冲区中读取换行符。
读取x的值后,可以使用fflush(stdin)
来清除输入缓冲区。
答案 1 :(得分:0)
在没有读取字符串输入的原因是,在输入return/enter
值后按int
时,它会将换行符作为输入。一个简单的解决方法是在字符串的scanf
说明符中添加一个空格。
scanf(" %[^\n]", name);
这样可以正常工作。