1

它所要做的就是计算用户输入的字符,然后打印出来。不能使用数组,必须由用户终止。我不知道这有什么问题。有小费吗?

#include <stdio.h>

int main( int argc, char *argv[] )
{
  int input;

  printf( "Enter a series of characters:\n" );

  input  = getchar( );

  while ( input != EOF )
    {
    input++;
    input = getchar( );
    }

  printf( "You entered %d characters.\n", input );

  return 0;

}
4

4 回答 4

4

您是否打算input保留当前输入或已阅读的字符数?您目前似乎正在尝试将它用于两者,但它只能容纳一个或另一个。

于 2012-10-04T02:28:38.677 回答
3

您的输入变量input也被用作计数器。

于 2012-10-04T02:28:41.717 回答
2

您将input变量用于两个不同的事情:

  • 获取下一个字符stdin
  • 并计算输入的字符总数。

第一个用法搞砸了第二个:input用于存储下一个字符,您会覆盖字符数。

您需要 2 个不同的变量来实现两种不同的目的。

int input;
int characterCount = 0;

// your loop:
    characterCount++;
    input = getchar( );
于 2012-10-04T02:28:52.193 回答
1

内联评论

#include <stdio.h>

int main( int argc, char *argv[] )
{
  int input;

  printf( "Enter a series of characters:\n" );

  input  = getchar( );

  while ( input != EOF )
    {
/* Good so far - you have read a char from the user */
    input++;
/* Why are you increment the user entered char by 1 - you need a separate counter */
    input = getchar( );
/* Now you read another char from the user (to be mangled on next loop iteration */
    }

  printf( "You entered %d characters.\n", input );

  return 0;

}
于 2012-10-04T02:29:39.830 回答