⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch7.htm

📁 ncurses中文说明
💻 HTM
字号:

<html>
<head>
<title>第七章:关于类似scanw()的输入函数</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="keywords" content="scanw,ncurses,curses,输入函数">
</head>

<body leftmargin=40 bgcolor="#DAFFFF" text="black" link="#0000ff" alink="blue" vlink="#940084">
<br>
<div align="center"><a href="index.htm"><font size="5">
    <strong>
    回  目  录
    </strong>
  </font></a></div>
  <div align="right">
  <font size="5">
  <a href="ch6.htm">
  <strong>
  上 一 章
  </strong>
  </a>
  <a href="ch8.htm">
    <strong>
    下 一 章
	</strong>
	</a>
	</font>
	</div>
	<br>
<br>
<br>
<h1 align="center">
第七章:关于类似scanw()的输入函数
</h1>
<br>
<br>
<br>
<div align="left">
<font size="4">
<p>
<dd>
如果在屏幕上只是打印而没有输入的话,那样的程序是索然无味的。所以让我们来看看那些处理用户输入的函数。这些函数也被分为三类:
</dd>
<br>
<br>
<dd>
getch()类函数集:读取一个字符的一类函数。
</dd>
<dd>
scanw()类函数集:按照格式化读取输入的一类函数
</dd>
<dd>
getstr()类函数集:读取字符串的一类函数。
</dd>
</p>
<br>
<br>
<h3 align="left">
<a name="getch">
7.1. getch()函数集
</a>
</h3>
<br>
<p>
<dd>
这些函数将从终端读入一个字符。但是在使用它的时候需要考虑有些微妙的情况:比如你没有事先调用cbreak()函数的话,CURSES将不会连续读取你输入的字符,除非你输入了换行符或者文末符。为了避免这种情况的出现,在需要即时显示输入字符的程序中,必须先调用cbreak()函数。另外一个被广泛使用的函数是noecho()。这个函数被调用时,用户输入的字符不会将显示在屏幕上。cbeak()和noecho()是两个典型的用于键盘管理的函数。这类的函数将在<strong>键盘管理</strong>一章中说明。
</dd>
</p>
<br>
<br>
<h3 align="left">
<a name="scanw">
7.2. scanw()函数集
</a>
</h3>
<br>
<p>
<dd>
这些函数用法大体上和scanf()函数相似。只不过加入了能够在屏幕的任意位置格式化输入字符串的功能。
</dd>
</p>
<br>
<h4 align="left">
<strong>
7.2.1. scanw()函数和mvscanw()函数
</strong>
</h4>
<p>
<dd>
scanw()函数的用法和sscanf()函数的用法基本相同。实际上,在调用scanw()函数时,是调用了wgetstr()函数,并将wgetstr()函数处理的数据结果传送到一个scanw()调用中。(wgetstr()函数将在下面详细介绍,写到这里是为了结构整齐。)
</dd>
</p>
<br>
<h4 align="left">
<strong>
7.2.2. wscanw()函数和mvwscanw()函数
</strong>
</h4>
<p>
这两个函数的用法和以上两个函数相似。区别在于它们从一个窗口中读取数据。所以,它们需要提供指定窗口的指针。
</p>
<br>
<h4 align="left">
<strong>
7.2.3. vwscanw()函数
</strong>
</h4>
<p>
<dd>
这个函数和vprintf()相似。它用于输入变量表中所对应的变量。
</dd>
</p>

<br>
<br>
<h3 align="left"><br>
<a name="getstr">
7.3. getstr()函数集
</a>
</h3>
<br>
<p>
<dd>
这些函数用于从终端取得字符串。本质上,连续使用getch()函数直到读到一个换行符(或文末符)和这个函数使用的结果是一样的。当健入后它会创建一个指向这个字符串的指针
</dd>
</p>
<br>
<br>
<h3 align="left">
<a name="example">
7.4. 例子
</a>
</h3>
<br>
<br>
<p>
例4:一个简单的使用scanw()函数的例子。
</p>
<br>
<font color="Maroon">
<pre>
#include &lt;ncurses.h&gt;			/* ncurses.h 已经包含了stdio.h */  
#include &lt;string.h&gt; 
 
int main()
{
 char mesg[]="Enter a string: ";	/* 将要被打印的字符串信息 */
 char str[80];
 int row,col;				/* 存储行号和列号的变量,用于指定光标位置 */
 initscr();					/* 进入curses模式 */
 getmaxyx(stdscr,row,col);		/* 取得stdscr的行数和列数 */
 mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);	
						/* 在屏幕的正中打印字符串mesg */

 getstr(str);				/* 将指针str 指向读取的字符串 */
 mvprintw(LINES - 2, 0, "You Entered: %s", str);
 getch();
 endwin();

 return 0;
}
</pre>
</font>
</font>
</div>
<br>
<br>

<div align="center"><a href="index.htm"><font size="5">
    <strong>
    回  目  录
    </strong>
  </font></a></div>
  <div align="right">
  <font size="5">
  <a href="ch6.htm">
  <strong>
  上 一 章
  </strong>
  </a>
  <a href="ch8.htm">
    <strong>
    下 一 章
	</strong>
	</a>
	</font>
	</div>
	<br>
<br>
<br>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -