0

私の課題では、標準入力からデータを受け取り、それを標準出力に出力するように依頼されました。これまでのところ、私はそれを正しく行っています。(以下のコード)

#include<stdio.h>
int main (void)
{
int a;
while ( ( a = getchar () ) != EOF)
   {
    putchar(a);
   }
return 0;
}

ステップ 2 では、行を切り詰めるように求められます。つまり、行が 72 文字に達したら、73 文字目以降を削除し (次の行に転送されません)、ユーザーがさらに入力できるように新しい行を作成する必要があります。データ。(スペースは文字スペースとしてカウントされると思います)

また、このプログラムはユーザー入力を受け取り、すべての非印刷 ASCII 文字を削除/置換し、すべての非 ASCII 文字を削除し、そのような変更が行われた後、行を 72 に切り詰めて、結果。

しかし今のところ、ユーザー入力を切り捨てる方法を学びたいだけです。一歩ずつ取り組んでいます。これを切り捨てて新しい行を作成するには、while ループ内に何らかの if ステートメントとカウント トリックが必要だと感じていますが、わかりません。助けはありますか?チップ?ありがとうございました。

4

2 に答える 2

1
#include <stdio.h>
int main (int argc, char **argv)
{
  int a;
  int i = 0;
  while ( (a = getchar ()) != EOF) {
    if (++i < 73)
      putchar (a);
    else
      if (i == 73)
        putchar ('\n');
    if (a == '\n')
      i = 0;
  }
  return 0;
}
于 2013-09-22T22:04:07.343 に答える