1

私はすでにこの同様の質問を見てきましたが、停止する別の方法があるかどうかはまだ疑問に思っています私のプログラムはcharを検索し、'\n'それが最初のcharの使用でない場合は、リダイレクトを使用すると正常に動作する次のchargetcharまで使用しますが、リダイレクトなしでプログラムを使用しようとすると、Enterキーが常にエコーされます。これは端末のエコーまたは別の文字をチェックする必要がありますか? 私はまた、多くのグーグルを含めてみましたが、エコーへの答えは移植性ではできないようです?putchar'\n'stdin'\n''/r'

#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;
}

ありがとうラクラン

4

1 に答える 1

1

まず、次のことを試してください。

1)条件はif (c != '\n' && c != '\r')

2)およびwhileループ、ターミナルがラインバッファリングされている場合はgetch、ncursesライブラリからライブラリパッケージを使用する方が適切です。ほとんどのプラットフォームでライブラリパッケージが存在するはずです。

    while((c =getchar())!='\n') {
       putchar(c);
    }
于 2012-04-17T05:38:02.087 に答える