易码技术论坛

 找回密码
 加入易码
搜索
查看: 94884|回复: 2

[请教高手]关于GetBlock保存到字符串的问题

[复制链接]
发表于 2006-2-21 12:10:00 | 显示全部楼层
首先楼主对字符串的理解错了。
字符串是以0结尾的字符数组,比如char s[]="Hello";实际上是'H'、'e'、'l'、'l'、'o'、'\0',最后一个表示NULL(0)终止符。而strlen的工作方式就是从s指向的开始依次往后搜索,搜索到NULL就终止,之前的就是字符串的长度。

所以如果你的data数组第一个元素就是NULL(0)的话,那么strlen就返回0了

如果想知道num的正确值可以使用这个公式 w*h/8,结果取上界(w为截图宽度,h为截图高度)
 楼主| 发表于 2006-2-22 13:26:00 | 显示全部楼层
感谢yzk0370,其实我也知道strlen的用法,不过用的时候却忘了。

另外我看了你的“任意位置复制粘贴”的源程序,对我帮助很大,使我了解了GetBlock的用法,在这一并感谢。
 楼主| 发表于 2006-2-21 10:39:11 | 显示全部楼层 |阅读模式
一个简单的程序:

void main()
{int num;
char data[16];
Locate(0,1);
putchar('V');
GetBlock(8,0,8,16,0x40,data);
num=strlen(data);
printf("%d",num);
getchar();
WriteBlock(80,40,8,16,0x41,data);
getchar();
}
为什么得出的num=0?不应该是图形的大小(16)吗?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-11 01:01 , Processed in 0.015817 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表