neil123 发表于 2017-10-19 16:56:44

求帮助

以上操作将一直重复到getchar返回EOF为止,那我有一个疑问你在运行程序的时候,它却你一直不会停止,不管我怎么输入。因为他不到什么时候为EOF。如果我要让它在我输入完后就停止我该怎么办呢。
程序如下:
#include <stdio.h>

#define NONBLANK 'a'

int main(void)
{
    int c, lastc;

    lastc = NONBLANK;
    while((c = getchar()) != EOF);
    {
      if(c != ' ')
      {
            putchar(c);
      }
      if(c == ' ')
      {
            if(lastc != ' ')
            {
                putchar(c);
            }
      }
      lastc = c;
    }
   
    return 0;
}

weizhongyang 发表于 2017-10-19 17:59:09

如果我要让它在我输入完后就停止我该怎么办呢?
用getch()函数可以实现。

用组合键ctr+D可以实现EOF的输入。

丶忘却的年少o 发表于 2017-10-19 19:14:30

一般这种程序的用户体验很差,里面加个if ( c == 27 ) break; 这样就是说输入esc就能退出循环
页: [1]
查看完整版本: 求帮助