代码错误无法插入字符

时间:2017-08-30 16:22:04

标签: c arrays char int spaces

这段代码保存了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;
}

2 个答案:

答案 0 :(得分:0)

输入x的值后,scanf从输入缓冲区中读取换行符。 读取x的值后,可以使用fflush(stdin)来清除输入缓冲区。

答案 1 :(得分:0)

在没有读取字符串输入的原因是,在输入return/enter值后按int时,它会将换行符作为输入。一个简单的解决方法是在字符串的scanf说明符中添加一个空格。

scanf(" %[^\n]", name);

这样可以正常工作。