用空格键输入的问题

时间:2019-11-03 21:58:20

标签: c

我想获得一个全名,包括空格字符的字符串。我知道我不能仅将scanf与“%s”等一起使用,但是fgets,gets函数和带有scanf的%[^ \ n]%* c方法也无法正常工作。

我已经尝试使用scanf(“%[^ \ n]%* c”,&name),fgets(name,LENGHT,stdin)和gets(name)方法,但是它们无法正常工作。我的程序不会从此代码中获取任何输入,只是在打印问题后忽略这些功能。

void writeFile()
{
    char i;
    char name[LENGHT];
    char surname[LENGHT];
    int age;
    char subject[LENGHT];
    time_t now;
    time(&now);
    records = fopen("./RCRDS/records.rcd","r");
    if(records == NULL)
    {
        printf("\nRecord file doesn't exist!\n");
    }
    else
    {
        records = fopen("./RCRDS/records.rcd","a");
        printf("\nName    : ");
        scanf("%s",&name);
        fprintf(records,"\nName        : %s",name);
        printf("\nSurname : ");
        scanf("%s",&surname);

我想输入一个包含名称中包含空格键的字符串的输入。

示例:

名称:John Forbes(2个带空格的名字)

1 个答案:

答案 0 :(得分:0)

您可以使用:scanf("%20[^\n]",name); 20表示输入字符串[^ \ n]的大小不会接收换行符