Linux终端下的字符回显问题

利用tcgetattr()和tcsetattr()函数
  
  
  
  
  1. #include<stdio.h> 
  2. #include<stdlib.h> 
  3. #include<termios.h> 
  4.  
  5. int main() 
  6.         char input[20]; 
  7.         struct termios oldsetting,newsetting; 
  8.         tcgetattr(fileno(stdin), &oldsetting); 
  9.         newsetting = oldsetting; 
  10.         newsetting.c_lflag &= ~ECHO; 
  11.         tcsetattr(fileno(stdin), TCSANOW, &newsetting); 
  12.         gets(input); 
  13.         tcsetattr(fileno(stdin), TCSANOW, &oldsetting); 
  14.         printf("%s\n",input); 
  15.  
  16.         return 0; 

 

利用stty进行设置

   
   
   
   
  1. #include<stdio.h> 
  2. #include<stdlib.h> 
  3.  
  4. int main() 
  5.         char input[20]; 
  6.         system("stty -echo"); 
  7.         gets(input); 
  8.         system("stty echo"); 
  9.         printf("%s\n",input); 
  10.  
  11.         return 0; 

你可能感兴趣的:(linux,终端,回显)