首页   注册   登录
 diffworld 最近的时间轴更新

diffworld

V2EX 第 184821 号会员,加入于 2016-08-01 11:46:16 +08:00
今日活跃度排名 14064
权限系统如何精确的控制到实体的字段
问与答  •  diffworld  •  29 天前  •  最后回复来自 ifane
1
莫名其妙被注册淘宝账号?
问与答  •  diffworld  •  2018-08-06 10:28:59 AM  •  最后回复来自 yingtl
2
怎么判断爬虫已经将网站的数据完整的爬取下来了
问与答  •  diffworld  •  2018-06-21 13:48:42 PM  •  最后回复来自 icy37785
5
google-chrome 浏览器 SwitchyOmega 是不是挂了?
问与答  •  diffworld  •  2017-10-11 10:55:22 AM  •  最后回复来自 stebest
11
vscode 跳转到函数之后怎么跳转回之前的位置
问与答  •  diffworld  •  331 天前  •  最后回复来自 yol
8
请教一个关于算法时间复杂度的问题
问与答  •  diffworld  •  2017-04-08 18:37:22 PM  •  最后回复来自 syncher
12
[新手提问] 关于 if(system(cmd)==0)和 if(0==system(cmd))的区别
问与答  •  diffworld  •  2017-03-21 16:23:55 PM  •  最后回复来自 diffworld
5
关于 ncurses 滚屏的问题
问与答  •  diffworld  •  2017-03-14 09:59:34 AM  •  最后回复来自 diffworld
1
vim 的状态栏是怎么弄出来的?
问与答  •  diffworld  •  2017-03-10 14:44:10 PM
udp socket 中的 sockaddr_in 设置的 IP 和端口号到底是什么鬼?
问与答  •  diffworld  •  2017-03-09 15:12:43 PM  •  最后回复来自 diffworld
4
diffworld 最近回复了
311 天前
回复了 romanten 创建的主题 问与答 各位有没有穿秋裤腿毛疼的
你可以试试涂上大宝之类的再穿,会好一些
2017-11-01 11:24:05 +08:00
回复了 zhuziyi 创建的主题 程序员 Sublime Text 频繁更新,官网也焕然一新...
很久没用 Sublime Text 了,弱弱的问一句,之前在 ubuntu 中不是需要设置才能输入中文吗?这个问题现在解决了吗
2017-08-24 16:32:25 +08:00
回复了 diffworld 创建的主题 问与答 vscode 跳转到函数之后怎么跳转回之前的位置
@NullMan @tengtengking 谢谢,在我的 ubuntu 系统里面显示的是`ctrl+alt+-`
2017-04-08 11:15:18 +08:00
回复了 diffworld 创建的主题 问与答 请教一个关于算法时间复杂度的问题
@ipwx 你好,你给的建议非常好,我是刚学数据结构的,看大话数据结构只看到第二章觉得这个地方有疑惑就提问了
2017-03-21 16:23:55 +08:00
回复了 diffworld 创建的主题 问与答 [新手提问] 关于 if(system(cmd)==0)和 if(0==system(cmd))的区别
@coderluan
@tsunli
@wingoo
@ipwx
说得简单明了,我已经知道了,谢谢大家
路过的吃瓜群众,话说你是不是对几年前被骗的 1000 块耿耿于怀
2017-03-15 11:10:05 +08:00
回复了 jh623 创建的主题 Python 自学 Python 的很迷茫,下一步怎么学?
情况差不多,现在正在挣扎着想写自己感兴趣的东西,觉得书上的看懂了但是真正实现起来却是举步维艰,如果实在不知道要做什么,就把感兴趣的轮子都造一遍,共勉
2017-03-14 09:59:34 +08:00
回复了 diffworld 创建的主题 问与答 关于 ncurses 滚屏的问题
自问自答:

1. 首先`scrollok`和`wsetscrreg`是有有效的,`scrollok`开启屏幕滚动,`wsetscrreg`设置滚动的范,`mvwprintw` 是移动到某个位置进行输出
2. 问题中代码不能生效的原因是 `x++`这句,这句的本意是从上到下,每输出一行行号加 1,配合`mvwprintw`也就是定位到下一行进行输出,但是如果当前屏幕的最大行数只有 80 行,而随着输出增多, x 必然会大于 80,假设 x=100,此时`mvwprintw`会定位到第 100 行的位置进行输出,而 100 行并不在屏幕内,所以不会在屏幕上显示输出

解决方法是,当 x 到达最大行数的时候,换用另外一种输出形式,比如`printw`、`wprintw`等等

所以修改之后的代码可以是这样的

```c
#include <ncurses.h>

int main(int argc, char *argv[])
{

initscr();
int lines, cols, win_lines, win_cols;
getmaxyx(stdscr, lines, cols);

WINDOW *my_win = newwin(lines-3,cols,0,0);
getmaxyx(my_win, win_lines, win_cols);

scrollok(my_win, TRUE);
wsetscrreg(my_win, 0, lines);
refresh();
wrefresh(my_win);


char str[256];
int x = 0;
while(1)
{

mvwprintw(stdscr, LINES-1, 0, "Enter string: ");
getstr(str);
mvwprintw(my_win, x, 0, "You Entered: %s", str);
refresh();
wrefresh(my_win);
x++;

if (x > win_lines)
{
wprintw(my_win, "\nYou Entered: %s", str);
refresh();
wrefresh(my_win);
}
}

endwin();
return 0;
}

```
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   908 人在线   最高记录 5043   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 18ms · UTC 21:22 · PVG 05:22 · LAX 14:22 · JFK 17:22
♥ Do have faith in what you're doing.