1

All it's supposed to do is count the characters a user enters, and print it out. Can't use arrays, and must be terminated by the user. I have no idea what's wrong with this. Any tips?

#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変数を 2 つの異なる目的で使用しています。

  • から次の文字を取得するstdin
  • 入力された文字の総数をカウントします。

最初の使用法は 2 番目の使用法を台無しにしinputます。次の文字を格納するために使用すると、文字数が上書きされます。

2 つの異なる目的のために、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 に答える