In C, I want to display every single character that the user type as * (Ex, Please type in your password: *****)
I m searching around but can t be able to find a solution for this. I m working on Ubuntu. Does anybody know a good way?
In C, I want to display every single character that the user type as * (Ex, Please type in your password: *****)
I m searching around but can t be able to find a solution for this. I m working on Ubuntu. Does anybody know a good way?
See my code. it works on my FC9 x86_64 system:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <termios.h>
int main(int argc, char **argv)
{
char passwd[16];
char *in = passwd;
struct termios tty_orig;
char c;
tcgetattr( STDIN_FILENO, &tty_orig );
struct termios tty_work = tty_orig;
puts("Please input password:");
tty_work.c_lflag &= ~( ECHO | ICANON ); // | ISIG );
tty_work.c_cc[ VMIN ] = 1;
tty_work.c_cc[ VTIME ] = 0;
tcsetattr( STDIN_FILENO, TCSAFLUSH, &tty_work );
while (1) {
if (read(STDIN_FILENO, &c, sizeof c) > 0) {
if (
== c) {
break;
}
*in++ = c;
write(STDOUT_FILENO, "*", 1);
}
}
tcsetattr( STDIN_FILENO, TCSAFLUSH, &tty_orig );
*in = ;
fputc(
, stdout);
// if you want to see the result:
// printf("Got password: %s
", passwd);
return 0;
}
Take a look at the ncurses library. It s a very liberally licensed library with a huge amount of functionality on a large variety of systems. I haven t used it very much, so I m not sure exactly which functions you d want to call, but if take a look at the documentation, I m sure you ll find what you want.
use a program like this one ask me for more questions
this program is used to put * instead of the char and it deletes the input after using backspace ^^
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char a[100],c;
int i;
fflush(stdin);
for ( i = 0 ; i<100 ; i++ )
{
fflush(stdin);
c = getch();
a[i] = c;
if ( a[i] == )
{
printf(" ");
i-= 2;
continue;
}
if ( a[i] == || a[i] ==
)
printf(" ");
else
printf("*");
if ( a[i]==
)
break;
}
a[i]= ;
printf("
%s" , a);
}
Do it manually; Read input one character at a time with for example getch() in conio, and print a * for each.
For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...
最好、最小、最快、开放的来源、C/C++ 3d 提供方(在3ds max模型的支持下),而不是通用公平市价,
Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...
I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...
I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...
I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...
Is there anything other than DDD that will draw diagrams of my data structures like DDD does that runs on Linux? ddd is okay and runs, just kind of has an old klunky feeling to it, just wanted to ...
Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...