Я уже посмотрел на это similar question, но мне все еще интересно, есть ли другой способ остановить 1) терминал, эхом с портабельностью, поскольку это назначение, и у меня уже есть одна авария с программой java и сжигание на моем компьютере учителей 2) в моей программе я ищу символ '\n'
, то если это не первый символ, используйте getchar
, а затем putchar
до следующего '\n'
char, который отлично работает при использовании перенаправленного stdin
, но когда я пытаюсь используя программу без перенаправления, клавиша ввода всегда эхом, это связано с эхо-вызовом терминала или мне нужно проверить различный символ, кроме '\n'
? Я также пробовал включить '/r'
и сделал много поискового запроса, но, похоже, ответ на эхо не может быть выполнен с помощью портативности?echoing 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;
}
Благодаря Лаклан
вы получите эхо в 'Do-while' если так преобразовать в' в то время как ((с = GetChar())! = '\ П') ' – keety
Существует мультиплатформенный портативный способ превращения off echo. Для UNIX и подобных платформ вам, вероятно, придется использовать termcap, но это не будет работать для Windows. –
Использование 'termios' для управления вводом и повторным вводом символов по времени переносится между системами, которые утверждают совместимость' posix'. Использование termios показано во втором ответе на странице «похожих вопросов», упомянутой в начале вашего вопроса, по адресу http://stackoverflow.com/questions/1798511/how-to-avoid-press-enter-with-any- getchar Также обратите внимание: 'getchar()' возвращает 'int' не' char'. –