私はk&rを介して作業しており、問題1-18に取り組んでいます。入力の各行からTRAILINGの空白とタブを削除し、完全に空白の行を削除するプログラムを作成します。私の考えは、各行を読み、スペースの数を数えることです。それが最初の空白の場合は、putcharを使用して印刷します。2番目のブランクがある場合は、それを印刷せず、スペースを0にリセットします。次に、読み通しを続けてスペースを削除します。
現時点では、少しずつ印刷しようとしているので、読み取ったものをすべて印刷するだけです。このプログラムを実行すると、ターミナルにこれらの��が2つ表示されます。ifステートメントまたはelseステートメントを誤ってネストするのに問題があると思います。以前にいくつかのエラーがありました。空白を削除するロジックを正しい方法で実行していますか?誰かが私を正しい方向に向けてコードを修正することができれば、私は感謝するでしょう。
#include <stdio.h>
main()
{
int c, i, spaces; /*c for input, i for counting*/
i = 0;
c = 0;
spaces = 0;
while ((c = getchar())!=EOF)
if(spaces = 0 && c == ' ')
++spaces;
putchar(c);
if(spaces >= 1)
spaces = 0;
else {
putchar(c);
}
}