帮我看看这段代码,输出错误!

gqjin 2010-05-14 11:27:52
long Fix::MyRead(long a,long b,char* c)
{
if (a==20 && b==30)
{
strncpy(c,"abc",8);
}
else
{
strncpy(c,"4800",4);
}
return 0;
}
上面这段代码我做成dll,然后再PB中调用,可以输出"abc",但我如果a<>20或b<>30时候,输出的不是4800,而是一个其他数字,怎么才可以再PB中输出4800 ?
...全文
155 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
gqjin 2010-05-14
  • 打赏
  • 举报
回复
strncpy(c,"4800/0",6); 就什么都没有输出
gqjin 2010-05-14
  • 打赏
  • 举报
回复
strncpy(c,"4800\0",5); 还是错
pengzhixi 2010-05-14
  • 打赏
  • 举报
回复
改个5,6啊什么的。
gqjin 2010-05-14
  • 打赏
  • 举报
回复
我写成strncpy(c,"4800/0",4); 输出还是不对
jakiejiajia 2010-05-14
  • 打赏
  • 举报
回复
“4800”这里默认有个‘\0’字符,要多加一个
gqjin 2010-05-14
  • 打赏
  • 举报
回复
加"/0" 还是错,改成16后什么都没输出
gqjin 2010-05-14
  • 打赏
  • 举报
回复
改多大?
ITvsET 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pengzhixi 的回复:]
strncpy(c,"4800",4);//4太小了,要改大点。
[/Quote]

对后面还有一个‘0/’
ztenv 版主 2010-05-14
  • 打赏
  • 举报
回复
改大点吧,把\0也copy进去;
阿佑 2010-05-14
  • 打赏
  • 举报
回复
楼主是没有很好的理解strcopy函数的用法,建议你去看下相关资料
pengzhixi 2010-05-14
  • 打赏
  • 举报
回复
strncpy(c,"4800",4);//4太小了,要改大点。
giant1st 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ccmfk 的回复:]

strncpy(c,"4800",4);
把4改成5就可以了
[/Quote]


NOD
某某9 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gqjin 的回复:]

我写成strncpy(c,"4800/0",4); 输出还是不对
[/Quote]
不是给4800加,是把4变成5或6啊等等较大的数
ccmfk 2010-05-14
  • 打赏
  • 举报
回复
strncpy(c,"4800",4);
把4改成5就可以了
向立天 2010-05-14
  • 打赏
  • 举报
回复
你的c多大
zhengart 2010-05-14
  • 打赏
  • 举报
回复
试试在strncpy(c,"4800",4);后加一句
c[4] = '\0';
s030702614 2010-05-14
  • 打赏
  • 举报
回复
strcpy(c,"4800");
用这个应该就可以了

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧