gcc 段错误 找了好久找不到原因

gcc 段错误 找了好久找不到原因,第1张

你搞错了,linux下这个要用 curses 库。你不需要自己写moveyx函数。自己写的性能上和实力上都比不过curses库。

moveyx函数中:

char str[30] = {0}

sprintf(str,"echo -ne \"\\033[%d%dH\"",y,x)

可能会发生段错误。你缓冲区太小。输入的数据超过2位就溢出了。

--

char i = 0, x, y, msg[MAX]

printf("请输入要显示字符串所在的行和列位置:\n")

scanf("%d%d",&y, &x)

注意你的y 和 x都不是int类型。输入类型错误。

我的是redhatas5版本的,在安装的镜像中找到rpm文件,拷贝到系统后,rpm -i ncurses-devel-5.5-24.20060715.i386.rpm,就可以了。希望能解决你的问题。

Ubuntu下安装方法:

sudo apt-get install libncurses5-dev

CentOS下安装方法:

1.到网上下载这个库ncurses-5.6.tar.gz,同样的需要解压、configure、make。(./configure –with-named-curses-libs=/usr/lib/libncurses.so.5,指定目录比较重要,这里提供参考。)

2.另一种方法就是简单的yum命令了,输入yum install ncurses-devel,自动完成。

curses库是一组函数,程序员可以用它们来设置光标的位置和终端屏幕上显示的字符样式。curses库最初是由UCB的开发小组开发的。大部分控制终端屏幕的程序使用curses。曾经由一组简单的函数组成的库现在包括了许多复杂的特性。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7240074.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存