首页 > 解决方案 > 在 printf() 中使用 %s 后出现自动换行符的问题

问题描述

以下是从用户那里获取名称和标记的简单程序。

#include <stdio.h>
int main()
{
    char name[11];
    int marks;
    printf("write name of student:\n");
    fgets(name, 11, stdin);
    printf("write marks of %s student:", name);//problem
    scanf("%d", &marks);
    return 0;
}

在第二个 printf 中,我使用%s来显示用户输入的名称并询问该名称的标记。问题是在显示名称(%s,即用户输入)后,屏幕上会打印一个换行符,而下一个单词(即“学生: ”)会打印在新行中。我找不到这个错误。以下是控制台上的结果。

write name of student:
Suraj
write marks of Suraj
 student:50

[Program finished]

Suraj是名字,50是写在控制台上的标记。

标签: arrayscstring

解决方案


推荐阅读