c编程输入字符for循环

时间:2017-02-19 21:21:50

标签: c loops for-loop getchar

我正在尝试编写一个简单的代码。

我应该使用Array.Copy输入10个字母,然后打印最小的字母。

实施例。 ASCII中的'A'是65,如果我输入'A',它应打印'A'最小。

我已经完成了第一部分,我应该输入字母,而我的for循环中的某些东西正在破碎。

这是我的代码:

getchar

使用该程序我得到了五次:

#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;
}

1 个答案:

答案 0 :(得分:0)

目前还不清楚你在问什么,我假设你想知道为什么你的程序在看似5次迭代之后就停止了,为什么你得到空的额外You entered:

这是由于getchar()的工作方式。当您输入字符并按Enter键时,您实际上正在输入a\n之类的内容。第一次getchar运行时它会抓取a,第二次抓取n(换行)进行两次迭代。一旦它执行此操作,它会等待您输入更多信息,因为它消耗了它可用的整个输入。

针对您的问题的一个解决方案是在getchar()之后使用额外的ch = getchar(),但是为了消耗额外的换行符,您不会将其分配给任何内容。

有关此问题的更多讨论in this question