为了实现一个简单的聊天程序,如果使用普通的输入输出函数,会很凌乱。so,便想着能不能用下

ncurses这个字符图形库

总结一下,就是这样。

使用ncurses时,先需要初始化窗口,程序结束时,主动调用endwin结束窗口。

initscr();

endwin();

输出函数

  1. #include <curses.h>
  2. int printw(const char *fmt, ...);
  3. int wprintw(WINDOW *win, const char *fmt, ...);
  4. int mvprintw(int y, int x, const char *fmt, ...);
  5. int mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);
  6. int vwprintw(WINDOW *win, const char *fmt, va_list varglist);
  7. int vw_printw(WINDOW *win, const char *fmt, va_list varglist);

printw 在默认的坐标输出

wprintw 指定窗口,在默认的坐标输出

mvprintw 指定坐标,输出

mvwprintw 指定窗口,指定坐标输出

vmprintw 和 vm_printw 比较不常用,搜索无果。。

输入函数

  1. #include <curses.h>
  2. int scanw(char *fmt, ...);
  3. int wscanw(WINDOW *win, char *fmt, ...);
  4. int mvscanw(int y, int x, char *fmt, ...);
  5. int mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);
  6. int vw_scanw(WINDOW *win, char *fmt, va_list varglist);
  7. int vwscanw(WINDOW *win, char *fmt, va_list varglist);

scanw 在默认的坐标输入

wscanw 指定窗口的默认坐标输入

mvscanw 在指定的坐标输入

mvwscanw 在指定的窗口和指定的坐标输入

上面的函数,和scanf差不多,在输入字符串,遇到空格就听,如果需要输入空格,就需要使用下面的函数。

  1. #include <curses.h>
  2. int getstr(char *str);
  3. int getnstr(char *str, int n);
  4. int wgetstr(WINDOW *win, char *str);
  5. int wgetnstr(WINDOW *win, char *str, int n);
  6. int mvgetstr(int y, int x, char *str);
  7. int mvwgetstr(WINDOW *win, int y, int x, char *str);
  8. int mvgetnstr(int y, int x, char *str, int n);
  9. int mvwgetnstr(WINDOW *, int y, int x, char *str, int n);

上面的函数用于输入字符串。

创建窗口

  1. WINDOW *newwin(int nlines, int ncols, int begin_y, int begin_x);

newwin() nlines和ncol分别为行数和列树,begin_y和begin_x分别为纵坐标和横坐标。

这里的坐标指的是左上角的坐标。

刷新窗口和刷新页面

  1. wrefresh(WINDOW *win);
  2. refresh();

获取坐标的宏

  1. getmaxyx(WINDOW *win, y, x);

getmaxyx 得到指定窗口的长度和高度,默认的窗口是stdscr。

ncurses库的一些函数的更多相关文章

  1. Linux系统下安装ncurses库

    ncurses库是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单. 今天在安装ncurses库的时候遇到了一些问题,现将遇到的问题所叙如下: 首先说明:本次安装采用的是源码包的 ...

  2. C语言图书管理借阅系统——ncurses库的使用

    一.前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: ...

  3. 16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS

    ;以下是16位汇编 创建静态库,并调用静态库中的函数 ;多文件汇编格式 ;编译方法(此处用的是masm 5.0,如果是其他的编译器,有可能不能编译) ;第一种,编译方法 ;1.masm main.as ...

  4. 【液晶模块系列基础视频】4.4.X-GUI图形界面库-画tab函数简介

    [液晶模块系列基础视频]4.4.X-GUI图形界面库-画tab函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...

  5. 【液晶模块系列基础视频】4.3.X-GUI图形界面库-画box函数简介

    [液晶模块系列基础视频]4.3.X-GUI图形界面库-画box函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址 ...

  6. C#将C++动态库的回调函数封装成事件

    关于C#调用C++动态库的文章很多,调用动态库中回调函数的方法也不在少数.但大多数调用回调函数的方法依然保留了C++的语法特点. 比如有一段C++的回调函数代码,为了表达它的意思,我把注释也粘贴了进来 ...

  7. Lua 中的string库(字符串函数库)总结

    (字符串函数库)总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-11-20我要评论 这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库 ...

  8. 解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题

    解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题 在原来项目中导入全志v3相机的 ...

  9. Golang调用windows下的dll动态库中的函数

    Golang调用windows下的dll动态库中的函数 使用syscall调用. package main import ( "fmt" "syscall" & ...

随机推荐

  1. php中并发读写文件冲突的解决方案

    在这里提供4种高并发读写文件的方案,各有优点,可以根据自己的情况解决php并发读写文件冲突的问题. 对于日IP不高或者说并发数不是很大的应用,一般不用考虑这些!用一般的文件操作方法完全没有问题.但如果 ...

  2. JS中多种方式创建对象

    1.内置对象创建 var girl=new Object(); girl.name='hxl'; console.log(typeof girl); 2.工厂模式,寄生构造函数模式 function ...

  3. windows 8下配置PLSQLDeveloper

    Win 8 64位系统上安装64 位Oracle,但是没有64位的PL/SQL,不能连接Oracle数据库,怎么办呢?方法是有的:我们可以通过安装32位的Oracle客户端来实现连接. 工具/原料 P ...

  4. jQuery可拖拽排序列表jquery-sortable-lists

    jquery-sortable-lists可以通过鼠标进行拖动排列树型菜单,可以定义某个列表元素是否拖动,拖动后回调,点击可以折叠树型结点,可以用来在后台模仿wordpress后台拖动菜单,实现多级菜 ...

  5. [译]SSAS下玩转PowerShell

    操作SSAS数据库的方法有很多,是否有一种可以方法可以通过脚本自动去做这些事呢,比如处理分区,创建备份以及监视SSAS的运行状况. 原文地址: http://www.mssqltips.com/sql ...

  6. 【Cocos2d-x for WP8 学习整理】(2)Cocos2d-Html5 游戏 《Fruit Attack》 WP8移植版 开源

    这一阵花了些时间,把 cocos2d-html5 里的sample 游戏<Fruit Attack>给移植到了WP8上来,目前已经实现了基本的功能,但是还有几个已知的bug,比如WP8只支 ...

  7. hdu 4717(三分求极值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...

  8. iOS 线程间共享资源添加排它锁

    #import "ViewController.h" @interface ViewController () @property(nonatomic,strong)NSThrea ...

  9. Spring泛型依赖注入

    1.定义基础仓库 package com.spring.generic.di; public class BaseRepository<T> { } 2.定义基础服务层   package ...

  10. Tomcat 解压版安装

    1.下载tomcat7.0 http://tomcat.apache.org/download-70.cgi