时间紧张,先记一笔,后续优化与完善。

curses库常用函数:

注意编译时要用这样的格式:gcc xxx.c -l curses -o xxx

第一个小例子:

include <stdio.h>
#include <curses.h> int main()
{
initscr(); clear();
move(10,20);
addstr("Hello, world");
move(LINES-1, 0);
refresh();
getch();
endwin();
return 0;
}

运行效果如下:

第二个小例子:

#include <stdio.h>
#include <curses.h> int main()
{
int i; initscr();
clear();
for (i = 0; i < LINES; i++)
{
move(i, i+1);
if (i%2 == 1)
standout(); //反白显示
addstr("Hello, world");
if (i%2 == 1)
standend(); //关闭反白显示
}
refresh();
getch();
endwin();
return 0;
}

运行效果:

第三个小例子:

    每日一道理
古人云:“海纳百川,有容乃大。”人世间,不可能没有矛盾和争吵,我们要以磊落的胸怀和宽容的微笑去面对它 。哈伯德也曾说过:“宽恕和受宽恕的难以言喻的快乐,是连神明都会为之羡慕的极大乐事。”让我们从宽容中享受快乐,从谅解中体会幸福吧!
#include <stdio.h>
#include <curses.h> int main()
{
int i; initscr();
clear();
for (i = 0; i < LINES; i++)
{
move(i, i+1);
if (i%2 == 1)
standout();
addstr("Hello, world");
if (i%2 == 1)
standend();
refresh();
sleep(1);
move(i, i+1); //move back
addstr(" "); //erase the line appear before
}
endwin();
return 0;
}

运行效果:字符串沿着对角线一行一下行的向下挪动

第四个小例子:

#include <stdio.h>
#include <curses.h> #define LEFTEDGE 10 /* 左边界 */
#define RIGHTEDGE 30 /* 右边界 */
#define ROW 10 int main()
{
char *message = "Hello";
char *blank = " ";
int dir = 1;
int pos = LEFTEDGE; initscr();
clear();
while (1)
{
move(ROW, pos);
addstr(message); /* draw string */
// move(LINES-1, COLS-1);
refresh(); /* show string */
sleep(1);
move(ROW, pos); /* move back */
addstr(blank); /* erase string */
pos += dir; /* advance position */
if (pos >= RIGHTEDGE) /* check for bounce */
dir = -1;
if (pos <= LEFTEDGE)
dir = 1;
}
return 0;
}

运行效果:在(ROW,LEFTEDGE)----(ROW,RIGHTEDGE)间往返挪动字符串

文章结束给大家分享下程序员的一些笑话语录: 警告
有一个小伙子在一个办公大楼的门口抽着烟,一个妇女路过他身边,并对他 说, “你知道不知道这个东西会危害你的健康?我是说, 你有没有注意到香烟 盒上的那个警告(Warning)?”
小伙子说,“没事儿,我是一个程序员”。
那妇女说,“这又怎样?”
程序员说,“我们从来不关心 Warning,只关心 Error”

---------------------------------
原创文章 By
编程和利用
---------------------------------

编程利用利用curses库编程开始的更多相关文章

  1. 浅谈JAVA中如何利用socket进行网络编程(二)

    转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

  2. 浅谈JAVA中如何利用socket进行网络编程(一)

    转自:http://developer.51cto.com/art/201106/268385.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

  3. [C++]Linux之图形界面编程库[curses库]之入门教程

    1. 安装 //方法一 sudo apt-get install libncurses5-dev [ ubuntu 16.04:亲测有效] //方法二 sudo apt-get install ncu ...

  4. 从函数式编程到Ramda函数库(一)

    函数式编程是种编程方式,它将电脑运算视为函数的计算.函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值).和指令式编程相比, ...

  5. C# 函数式编程及Monads.net库

    函数式编程中,一切皆为函数,这个函数一般不是类级别的,其可以保存在变量中,可以当做参数或返回值,是函数级别的抽象和重用,将函数作为可重用的基本模块,就像面向对象中一切皆为对象,把所有事物抽象为类,面向 ...

  6. 利用私有的库MobileCoreServices检测正在安装的应用

    利用的私有库检测正在安装的app 分为两步:第一,通过placeholderApplications获得所有的正在安装的app的信息 第二,遍历正在安装的app的信息,根据名称获得你想检测的app是否 ...

  7. STM32 HAL固件库编程的文件构架

    对于我这种以前只接触过51和AVR单片机编程的小菜来说,现在开始学习STM32的编程,对于函数的功能以及C语言的语法都还好理解,难的是它提供的那一套硬件抽象层(HAL)驱动是怎么和其他的东东搭配在一起 ...

  8. QTP自传之对象库编程

    对象库编程是我们平时工作中使用最多的编程方式,在自动化脚本开发中起到举足轻重的作用,与描述性性编程相比,更直接和易于维护,今天就和大家简单的聊聊如何进行对象库编程. 既然是对象库编程,肯定要对已存在于 ...

  9. 从函数式编程到Ramda函数库(二)

    Ramda 基本的数据结构都是原生 JavaScript 对象,我们常用的集合是 JavaScript 的数组.Ramda 还保留了许多其他原生 JavaScript 特性,例如,函数是具有属性的对象 ...

随机推荐

  1. PDF解决方案(1)--文件上传

    相关专题链接 PDF解决方案(1)--文件上传 PDF解决方案(2)--文件转PDF PDF解决方案(3)--PDF转SWF PDF解决方案(4)--在线浏览 前言:最近参与了一个项目,客户要求把系统 ...

  2. OCP-1Z0-051-题目解析-第10题

    10. View the Exhibit and examine the structure of the PROMOTIONS table. Each promotion has a duratio ...

  3. C# 我的注册表操作类

    using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; using Syst ...

  4. jquery 产品查看放大镜组件

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. C#集合基础与运用

    C#集合基础与运用   C#集合基础与运用 1. 集合接口与集合类型............................................... 1 (1) 集合的命名空间..... ...

  6. Lex Yacc手册

    Python Lex Yacc手册 本文是PLY (Python Lex-Yacc)的中文翻译版.转载请注明出处.这里有更好的阅读体验. 如果你从事编译器或解析器的开发工作,你可能对lex和yacc不 ...

  7. iOS基础 - UITableView的数据源和代理

    一.UITableView的代理方法 #pragma mark 每一行的高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtI ...

  8. 实现$.fn.extend 和$.extend函数

    Jquery揭秘系列:实现$.fn.extend 和$.extend函数   前面我们扩展了bind方法和ready函数,这次我要讲一下$.fn.extend 和$.extend函数. 其他的不多说, ...

  9. java使用maven创建springmvc web项目

    创建maven项目,使用maven-archetype-webapp 创建完成后首先是在pom.xml里增加maven的依赖 <dependencies> <dependency&g ...

  10. 5 MySQL索引

    目录: 1. 索引概述 1.1 为什么引入索引 1.2 什么是索引 1.3 索引的好处 1.4 索引的不足 1.5 索引分类 2. 索引设计原则 3. 索引建立和删除 3.1 索引创建 3.2 索引删 ...