Guys I'm supposed to write a program that displays the date and time using C along with username and password inputs
I came up with the following code
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <time.h>
#include <curses.h>
#define PASS_LEN 25
int current_getch;
int doloop = 1;
static WINDOW *mainwnd;
static WINDOW *screen;
WINDOW *my_win;
int now_sec, now_min, now_hour, now_day, now_wday, now_month, now_year;
time_t now;
struct tm *now_tm;
void screen_init(void)
{
mainwnd = initscr();
noecho();
cbreak();
nodelay(mainwnd, TRUE);
refresh(); // 1)
wrefresh(mainwnd);
screen = newwin(20, 45, 5, 5);
box(screen, ACS_VLINE, ACS_HLINE);
}
static void update_display(void)
{
curs_set(0);
mvwprintw(screen,2,6,"%d:%d:%d",now_hour, now_min, now_sec);
mvwprintw(screen,2,18,"%d-%d-%d", now_day, now_month, now_year);
mvwprintw(screen,4,6,"USERNAME:");
mvwprintw(screen,6,6,"PASSWORD:");
mvwprintw(screen,10,15,"Press E to END");
wrefresh(screen);
refresh();
}
void maketime(void)
{
// Get the current date/time
now = time(NULL);
now_tm = localtime(&now);
now_sec = now_tm->tm_sec;
now_min = now_tm->tm_min;
now_hour = now_tm->tm_hour;
now_day = now_tm->tm_mday;
now_wday = now_tm->tm_wday;
now_month = now_tm->tm_mon + 1;
now_year = now_tm->tm_year + 1900;
}
void screen_end(void)
{
endwin();
}
int main(void)
{
char user[256];
char password[PASS_LEN];
char *corr_password="letmein";
int i=0;
initscr();
screen_init();
while(doloop)
{
current_getch=getch();
if(current_getch == 69)
{
doloop=0;
}
maketime();
update_display();
}
move(10,13);
printw("Username:");
echo();
cbreak();
getstr(user);
refresh();
sleep(2);
nocbreak();
screen_end();
printf("program ended successfully\n");
return 0;
}
The above code displays the time and date alright but it doesnt take the input for the username from the user.The getstr() doesnt work.
can anyone help pls..
Thanks.