私は既にこのsimilar questionを見てきましたが、もう1つの方法があるのでしょうかと私はまだ疑問に思っています。1)ターミナルはportabiltyでエコーしています。 1つのJavaプログラムがクラッシュし、私の教師のコンピュータで焼く2)私のプログラムで私は'\n'
の文字を検索し、それが最初の文字の使用でなければgetchar
を次にputchar
まで'\n'
リダイレクトしたときにうまく動作するcharがstdin
リダイレクトせずにプログラムを使用すると、Enterキーが常にエコーされます。これは端末エコーと関係があるのですか、'\n'
以外の別の文字をチェックする必要がありますか?私も'/r'
を含めて試してみて、グーグルでたくさんのことをやったけど、エコーに対する答えは、ポパビリティではできないのだろうか?getcharと ' n' charをstdinからエコーする
#include <stdio.h>
#include <string.h>
int first_line(char);
int main(){
char c;
while((c = getchar())!=EOF){
first_line(c);
}
return 0;
}
int first_line(char c){
if (c != '\n'||c != '\r'){
putchar(c);
do{
c = getchar();
putchar(c);}
while(c !='\n');
}
return 0;
}
おかげラクラン
あなたは '行う-while'をもしそうなら、'しばらくに変換((C = getchar関数())!= '\ n')でエコーを得るのですか ' – keety
回すのマルチプラットフォームポータブルな方法がありますオフエコー。 UNIXなどのプラットフォームでは、おそらくtermcapを使用する必要がありますが、Windowsでは動作しません。 –
'termios'を使って一度に1文字の入力とエコーを制御することは、' posix'互換性を主張するシステム間で移植可能です。 termiosの使い方は、質問の始めにhttp://stackoverflow.com/questions/1798511/how-to-avoid-press-enter-with-any-htmlで質問された '類似質問 'ページの2番目の答えに示されています。 getcharまた、 'getchar()'は 'char'ではなく' int'を返します。 @BrianSwift; –