我正在编写程序,我需要用户输入这样的行(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);
}
这就是我尝试过的一切。
答案 0 :(得分:0)
尝试在getchar();
之后放置scanf("%s", name);
,然后使用gets()获取所需的行