c - 在 C 中接受单个字符?

标签 c

我打算做的是输入字符并将其用作模式。我试过使用 getchar() 但它不起作用。我听说过使用 scanf 但每当我按下键盘上特殊字符的“shift”时它就会跳过并停止。

int i, j, n;
char c;
c = getchar();
printf("Enter value of n: ");
scanf("%d", &n);

printf("Enter a Character: ");
getchar();

for(i=1; i<=n; i++)
{
    for(j=1; j<=i; j++)
    {
        printf("%c", c);
    }
    printf("\n");
}

最佳答案

您需要将 getchar 返回的值赋给变量 c,并且您对 getchar 的调用是多余的,这就是它跳过的原因读取所需的输入:

int i, j, n;
char c;
printf("Enter value of n: ");
scanf("%d", &n);

printf("Enter a Character: ");
scanf(" %c", &c);

for(i=1; i<=n; i++)
{
    for(j=1; j<=i; j++)
    {
        printf("%c", c);
    }
    printf("\n");
}

关于c - 在 C 中接受单个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964318/

相关文章:

更改 c 代码以逐行工作

c - TCL GUI 在 Windows 上查看 "native"有哪些选项?

c - 如何使用通配符在目录中搜索文件

c - 指向结构时如何正确使用 malloc() 和 realloc()?

c++ - gcov 不生成覆盖文件

c - 分割和复制字符串导致内存泄漏

c - 数组上的 bool 搜索

c - Windows 10 中的 malloc 比 Windows 7 慢

C 将 char 视为字母,而不是单字节整数

c - 无法让 fgets() 和 strcat() 以所需的方式运行