我无法输入带空格的字符串

时间:2019-11-08 19:08:29

标签: c string compilation

我正在编写程序,我需要用户输入这样的行(1, Stelios, 1.81, Greece)。

我认为第一件事是使用gets(),因为我想接受空格输入。经过几次尝试编译都没有成功,我读到它是出于危险而从C-11中删除的。

我接下来要做的是使用scanf()fgets(),但它会跳过输入,就像它们从未出现过一样,似乎没有任何作用。

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *f;     
    char line[30];
    char name[30]; 

    printf("\nGive the name: \n");
    scanf("%s", name);  
    f = fopen(name, "w");
    printf("\nGive the line to enter file: ");

    //gets(line);
    //fgets(line, 50, stdin);
    //scanf ("%[^\n]", line);
    //scanf ("%[^\n]%*c", line);

    printf("%s", line);        
    fclose(f);
}

这就是我尝试过的一切。

1 个答案:

答案 0 :(得分:0)

尝试在getchar();之后放置scanf("%s", name);,然后使用gets()获取所需的行