Sponsored Content
Full Discussion: Help with ncurses
Top Forums Programming Help with ncurses Post 302350465 by rakesh_01 on Friday 4th of September 2009 12:44:04 AM
Old 09-04-2009
Help with ncurses

Help with ncurses Hi,

I need some help with ncurses.I'm supposed to write a program in C to display date and time and also to input the username and password using C.I chose ncurses for my task and here I am.

Code:
 	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:");

    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(16,13);
       echo();
       cbreak();

       getstr(user);
       refresh();
       sleep(2);

       nocbreak();

      screen_end();
      printf("program ended successfully\n");
      return 0;
      }

However I am having a few queries regarding this.\

The getstr() works perfectly in a different program...but in this program it doesnt work...

Any help

Thanks
Image
 

9 More Discussions You Might Find Interesting

1. Programming

ncurses/Darwin

I am using Darwin on Mac OS X.I.I (new to both Unix and C++). I downloaded the ncurses library from http://prdownloads.sourceforge.net/gnu-darwin/ncurses-5.2.tgz, but I don't know what to do with it now. Stuffit has expanded the archive, but I still have the original .tgz as well (if that's... (1 Reply)
Discussion started by: parmenides
1 Replies

2. Programming

ncurses -> the best way to use menus

hello there, i'm exploring the curses lib and i'm having some trouble with "defining a style". to clarify: i'm creating a menu driven app and i've been thinking what's the best way to use menus: make global vars (not my favourite), creating a function which designs the menu and returns the... (2 Replies)
Discussion started by: crashnburn
2 Replies

3. UNIX for Advanced & Expert Users

Using Ncurses for testing vi

Hi, Somebody has told me that NCurses can be used to test vi. But i was unable to figure out how. If anybody has done anything with NCurses please reply. Also is there any othre way by which we can test vi automatically? (2 Replies)
Discussion started by: rahulrathod
2 Replies

4. Programming

nCurses over telnet

hello all. my first post here :) i just want a little help. i have a small app tha uses ncurses for gui, and for user input. I need this app to be executed on a sever side, and have access to it through telnet. When i test it, i see that enter makes the hole gui move up, and some other... (0 Replies)
Discussion started by: tamtam
0 Replies

5. Linux

Ncurses with Ubuntu

Hi, I am new to this programming with ncurses. I want to work out few examples on this ncurses. I jus want to know whether this ncurses works with Ubuntu OS? I found tat ncurses doesn come with AIX OS, may be it could be installed as a SupportPac or something, not sure about it. Can u please... (4 Replies)
Discussion started by: julie_s
4 Replies

6. UNIX for Dummies Questions & Answers

ncurses not in library?

I tried to complile a text-based messenger program but, while configuring, got a message saying that ncurses wasn't found. Though it appears to be there... This is the program: http://sourceforge.net/project/showfiles.php?group_id=110124&package_id=119574&release_id=373164 I get the error... (5 Replies)
Discussion started by: riwa
5 Replies

7. Programming

ncurses refresh()

i have read in one of links, there its documented but i am using following code int main () { char ch; initscr(); printw("Enter a char :"); ch=getch(); printw("You Entered '%c' ",ch); getch(); endwin(); return 0; } the code does... (2 Replies)
Discussion started by: MrUser
2 Replies

8. Programming

[C/Ncurses]Need help on a project

Hi guys I'm a newbie.Got a school project:need to convert Linux Hunt game,which is in K&R C to C99.I got some problems over Ncurses files:new library it's very different from the old one.There are some variables that with gcc are considered undefined 'cause they are no more used in the new Ncurses... (2 Replies)
Discussion started by: fracche
2 Replies

9. Programming

Ncurses colors

I am using ncurses to develop a user interface. Perhaps I should be using something else, but I am reasonably comfortable with ncurses and don't really want to climb another learning curve at this time. One problem I have dealt with for many years is ncurses' colors. I have simply been... (23 Replies)
Discussion started by: BillLee
23 Replies
initscr(3NCURSES)														 initscr(3NCURSES)

NAME
initscr, newterm, endwin, isendwin, set_term, delscreen - curses screen initialization and manipulation routines SYNOPSIS
#include <curses.h> WINDOW *initscr(void); int endwin(void); bool isendwin(void); SCREEN *newterm(char *type, FILE *outfd, FILE *infd); SCREEN *set_term(SCREEN *new); void delscreen(SCREEN* sp); DESCRIPTION
initscr is normally the first curses routine to call when initializing a program. A few special routines sometimes need to be called be- fore it; these are slk_init, filter, ripoffline, use_env. For multiple-terminal applications, newterm may be called before initscr. The initscr code determines the terminal type and initializes all curses data structures. initscr also causes the first call to refresh to clear the screen. If errors occur, initscr writes an appropriate error message to standard error and exits; otherwise, a pointer is re- turned to stdscr. A program that outputs to more than one terminal should use the newterm routine for each terminal instead of initscr. A program that needs to inspect capabilities, so it can continue to run in a line-oriented mode if the terminal cannot support a screen-oriented program, would also use newterm. The routine newterm should be called once for each terminal. It returns a variable of type SCREEN * which should be saved as a reference to that terminal. The arguments are the type of the terminal to be used in place of $TERM, a file pointer for output to the terminal, and another file pointer for input from the terminal (if type is NULL, $TERM will be used). The program must also call endwin for each terminal being used before exiting from curses. If newterm is called more than once for the same terminal, the first ter- minal referred to must be the last one for which endwin is called. A program should always call endwin before exiting or escaping from curses mode temporarily. This routine restores tty modes, moves the cursor to the lower left-hand corner of the screen and resets the terminal into the proper non-visual mode. Calling refresh or doupdate after a temporary escape causes the program to resume visual mode. The isendwin routine returns TRUE if endwin has been called without any subsequent calls to wrefresh, and FALSE otherwise. The set_term routine is used to switch between different terminals. The screen reference new becomes the new current terminal. The previ- ous terminal is returned by the routine. This is the only routine which manipulates SCREEN pointers; all other routines affect only the current terminal. The delscreen routine frees storage associated with the SCREEN data structure. The endwin routine does not do this, so delscreen should be called after endwin if a particular SCREEN is no longer needed. RETURN VALUE
endwin returns the integer ERR upon failure and OK upon successful completion. Routines that return pointers always return NULL on error. X/Open defines no error conditions. In this implementation endwin returns an error if the terminal was not initialized. NOTES
Note that initscr and newterm may be macros. PORTABILITY
These functions are described in the XSI Curses standard, Issue 4. It specifies that portable applications must not call initscr more than once. Old versions of curses, e.g., BSD 4.4, may have returned a null pointer from initscr when an error is detected, rather than exiting. It is safe but redundant to check the return value of initscr in XSI Curses. SEE ALSO
ncurses(3NCURSES), kernel(3NCURSES), refresh(3NCURSES), slk(3NCURSES), util(3NCURSES) initscr(3NCURSES)
All times are GMT -4. The time now is 09:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy