当前位置:  技术问答>linux和unix

为什么输出的结果比预期的要多????

    来源: 互联网  发布时间:2016-01-16

    本文导语:  代码如下: strncpy(ch,fname,15); printf("%s|n",ch); 输出结果如下: TYSG09720070327ÿ| 为什么输出的结果不是15位我预期的结果是 TYSG09720070327| 问题到底处在哪里呢??? 后面的ÿ是怎么回事???? | ...

代码如下:

strncpy(ch,fname,15);
printf("%s|n",ch);

输出结果如下:

TYSG09720070327ÿ|

为什么输出的结果不是15位我预期的结果是
TYSG09720070327|

问题到底处在哪里呢???
后面的ÿ是怎么回事????

|
上面也解释了,但写这种程序的时候一定要注意结尾加''.
比如:
1,可以在调用strncpy之前先将ch全部清零:
memset (ch, 0, 16);
2,也可以在调用strncpy 后:ch[15]=0;

|
strncpy并不能总是保证目标一定是以0结束的字符串,它只是忠实地复制n个字符而已。有时候你需要手工添加一个0。

strncpy的说明如下:
        如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。
        如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。
        src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
        返回指向dest的指针。

|
至于那个“y上面有两个点”的字符是ASCII码大于127的字符,未初始化的内存空间的内容是不可预测的。

|
自己在结尾加‘'

    
 
 

您可能感兴趣的文章:

  • 关于unix使用参数导致脚本输出异常(与脚本内直接带参数输出结果不同)
  • 如何将命令的执行结果在屏幕输出的同时保存到文件
  • [gdb]调用函数时,光显示返回值,并不输出结果。。。
  • 在线等!大哥们,printk函数到底怎么看他输出的结果?马上给分
  • 我想得到一个软件的输出结果,但重定向不好使,请帮忙???????
  • top与ps命令输出结果差异以及top结果的重定向
  • 用VIM做多行匹配,怎样才能将匹配结果输出到文件?
  • [shell]输出不同的结果到不同的文件
  • 关于awk提取文本时的一个输出结果显示问题
  • 想将sar输出结果写在一个文件中,怎么做?
  • 问一下diff输出的结果的含义,谢谢。
  • 如何将make的结果输出到文件中
  • 结果可不可以同时标准输出,并且写入文件
  • 请问如何将VIM的查找结果输出到文件?
  • 为什么输出的结果是小写呢?
  • 如何让java的编译时的错误信息或输出的结果信息显示在指定的窗口中
  • 如何将程序输出的结果重定向到另外的控制台
  • 为什么输出结果是这个哪????
  • 编译模块输出不了结果
  • 关于格式化输出shell结果的问题?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • C 如果一个字符串是空值 输出的时候如何让其输出NULL 而不是什么也不输出?
  • Python不使用print而直接输出二进制字符串
  • 如何将一个命令的输出输出到屏幕上,并且同时保存到一个文件中?
  • python异常信息堆栈输出到日志文件
  • 怎样既在屏幕上显示输出,又把输出保存到一个文件中.
  • python字符串格式化输出及相关操作代码举例
  • 怎样在使用curses字符串输出函数或字符输出函数时,隐藏光标
  • 如何ls只输出子目录名,不输出文件名??
  • 怎样可以按行输出输出二叉树?
  • 请问如何动态命名重定向输出文件名,并将内容输出到该文件?
  • 一个守护进程在里面printf想输出点东西为什么不输出?
  • 菜鸟之问题:用那个输入输出流类输出到打印机
  • 送分了:)如何将一些需要输出的东西写到ByteArrayOutputStream输出流中,如一个二维数组String[][]。
  • 在脚本中如何实现输出格式化输出
  • 怎样格式化输出:即把7输出为007?
  • 分析6410 TV输出流程, TV输出时不显示图像与大家讨论!
  • 输出重定向的问题:为什么输出到文件的东西不对?
  • 在Unix下写的printf输出怎么不能在控制台上看到输出内容呢?
  • .net/c#/asp.net iis7站长之家
  • 急!!请问如何将输入的INT或LONG型的数据按位(十进制)数输出,日期型按照如1988年12月12日 3点50分输出???


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3