l’écho de getchar et ‘\ n’ char de stdin

J’ai déjà examiné cette question similaire mais je me demande toujours s’il existe un autre moyen d’arrêter 1) le terminal résonne avec la portabilité car il s’agit d’une tâche et j’ai déjà eu un crash de programme java et une gravure sur l’ordinateur de mes professeurs 2) dans mon programme je recherche un caractère '\n' puis si ce n’est pas le premier caractère, utilisez getchar puis putchar jusqu’au prochain caractère '\n' qui fonctionne bien avec stdin redirigé, mais lorsque j’essaie d’utiliser le programme sans redirection, entrez la clé est toujours en écho, est-ce que cela a un rapport avec l’écho du terminal ou dois-je vérifier s’il existe un caractère différent de '\n' ? J’ai également essayé d’inclure '/r' et fait beaucoup de recherches sur Google, mais il semble que la réponse à l’écho est impossible à réaliser avec la portabilité.

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

Merci Lachlan

Pour commencer, essayez ce qui suit:

1) la condition devrait être if (c != '\n' && c != '\r')

2) et la boucle while, au cas où le terminal est mis en mémoire tampon, il vaut mieux utiliser getch depuis la bibliothèque ncurses, les paquets de bibliothèque devraient être présents pour la plupart des plateformes.

  while((c =getchar())!='\n') { putchar(c); }