入力のすべての行を逆にするプログラムを作成しています。
これは私のコードです:
#include <stdio.h>
#include <string.h>
int main()
{
char c[100];
while((fgets(c,100,stdin)) != NULL)
{
c[strlen(c) - 1] = '\0';
for(int i=strlen(c); i>=0; i--)
{
printf("%c",c[i]);
}
}
}
私のテスト入力:
abc 123
lorem ipsum
dolor sit amet
最初の行を反転して印刷できます。
abc 123
321 cba
しかし、入力の次の行を入力し始めると、それは逆の入力の隣にあるため、テスト入力に対して実行される完全なプログラムは次のようになります。
abc 123
321 cbalorem ipsum
muspi meroldolor sit amet
tema tis rolod
次のようになります。
abc 123
321 cba
lorem ipsum
muspi merol
dolor sit amet
tema tis rolod
回避策として、出力の後にもう一度押しEnterて、次の入力行を別の行に入力できるようにしますが、なぜそれを行う必要があるのか わかりません。