2016-08-09 4 views
-2

文の最後に「\ n」を印刷したいとします。ただループ中にCの最後の文字だけを ' n'に印刷する方法は?

よう

こんにちは私の友人は

ヨこんにちは

、ここでは私のコード

while(scanf("%c",&b)!=EOF) 
{ 
if((b>=97&&b<=122)||(b>=65&&b<=90)||b==32) 
printf("%c",b); 

printf("\n"); 
} 

ですが、それは仕事をdosn't。

私が印刷条件を追加する必要があります「\ n」の

それは

if(last character) 
printf("\n"); 

が好きかもしれないが、私はここに

+2

文の終わりを定義するには、受け入れられるcharコードとして '\ n'(10)を含める必要があります。 – dvhh

+0

オハイオ州は素晴らしいアイデアです – PvzAKho

+1

ただ一つの文字を読み込むだけなら、 'scanf'は過剰です。例えば['fgetc'](http://en.cppreference.com/w/c/io/fgetc)の代わりに' int b;ところで、改行を "文末"として使用することにした場合、特殊なケーシングは必要ありません。ちょうどその場合は、((b = fgetc(stdin))!= EOF){...} ' –

答えて

1

問題は、あなたドンということであることを行う方法がわかりません'を知っていますが、最後の文字が発生したときは、少なくともはループ内にありません。ループです。したがって、問題の簡単な解決策は、改行の印刷をループから外すだけです。

+0

しかし、私は複数の文を入力する必要があり、すべての文の最後に '\ n'を印刷することができます。 – PvzAKho

+0

@PvzAKho次に、文章の終わりを定義する必要があります。 –

関連する問題