c编程为循环输入字符

c编程为循环输入字符,c,loops,for-loop,getchar,C,Loops,For Loop,Getchar,我试图写一个简单的代码 我应该使用getchar输入10个字母,然后打印最小的字母 例如,“A”在ASCII中是65,如果我输入“A”,它应该打印“A”是最小的 我已经完成了第一部分,在那里我应该输入字母,而我的for循环中的某些内容正在中断 这是我的代码: #include <stdio.h> int main(void) { char ch; int i; for(i=0; i<10; i++) { ch = getchar;

我试图写一个简单的代码

我应该使用
getchar
输入10个字母,然后打印最小的字母

例如,“A”在ASCII中是65,如果我输入“A”,它应该打印“A”是最小的

我已经完成了第一部分,在那里我应该输入字母,而我的for循环中的某些内容正在中断

这是我的代码:

#include <stdio.h>

int main(void) 
{
    char ch;
    int i;

    for(i=0; i<10; i++) {
        ch = getchar;
        printf("You entered : %c\n", ch);
    }

    return 0;
}

现在还不清楚你在问什么,我假设你想知道为什么你的程序在5次迭代之后停止了,为什么你会得到你输入的空的额外

这是由于
getchar()
的工作方式造成的。当您输入字符并按Enter键时,实际上输入的是类似于
a\n
的内容。第一次运行
getchar
时,它获取
a
,第二次获取
n
(新行),需要两次迭代。一旦它这样做了,它就会等待您输入更多,因为它已经消耗了所有可用的输入

您的问题的一个解决方案是在
ch=getchar()
之后使用一个额外的
getchar()
,为了使用额外的换行符,您不分配给任何东西


有关这方面的更多讨论可用。

请将代码和结果作为问题的一部分。随着时间的推移,链接可能会变得无效,让它们消失会使问题完全无法阅读。很抱歉,我是这个页面的新手。我该怎么做?如果你编辑你的答案,你可以插入代码片段。在所有其他格式化工具旁边有一个选项,您可以选择任何要格式化为代码的文本。只需粘贴图像中的代码并使用格式化程序
ch=getchar=>
ch=getchar()启用编译器警告。了解它们的含义并正确地修复它们。
a
You entered : a
You entered :