while (1) {
palindrome = my_string_init_default();
while (1) {
ch = getc(stdin);
if (ch == '\n') {
break;
}
else {
continue;
}
palindrome->push_back(palindrome, ch);
}
if (is_palindrome(palindrome)) {
printf("Yes \n");
}
else {
printf("No \n");
}
palindrome->destroy(&palindrome);
}
return 0;
}
基本的にテキストがパリンドロームかどうかを確認しようとしています。コードのその部分はここには表示されず、完全に正常に動作します。何をしようとしているのは、行末が終わるまで入力を読み込むことです。その行を回文かどうかをチェックする文字列と見なしてください。プログラムを終了する代わりに、次の行に行き、EOFに達するまで反復処理を続ける必要があります。バッファの場所を邪魔することなく、ここでどうすればいいですか?ここでfseekを使うことはできますか?stdinでバッファ位置を乱さずにネストループを使用する
なぜ私は表示されません'stdin'の管理に関して特別なことを行う必要があります。 (あなたの問題はそれとは関係ありません) –
'scanf'を使用できない理由はありますか? (つまり、一連の 'char'を読むのではなく、コンソール(' stdin')から一度 'string'を読んでください) – ryyker