不在C中从struct打印字符串

不在C中从struct打印字符串,第1张

概述从C语言中的结构打印字符串有问题… typedef struct box{ char *REF_OR_SYS; int num, x, y, w, h, o;}BOX;sscanf(str, "%s %d %d %d %d %d %d", &label, &refNum, &x, &y, &w, &h, &o);BOX detect = {label, refNum, x, y, 从C语言中的结构打印字符串有问题…

typedef struct Box{    char *REF_OR_SYS; int num,x,y,w,h,o;}Box;sscanf(str,"%s %d %d %d %d %d %d",&label,&refNum,&x,&y,&w,&h,&o);Box detect = {label,refNum,o};printf("\nLABEL IS %s\n",detect.REF_OR_SYS); //Prints out the String correctly                                              //(Either the word REF or SYS)return detect;

当这个结构传递给另一个结构时,所有内容都显示在字符串的EXCEPT之外.

voID printBox(Box detect){printf("Type: %s    Ref: %d    X: %d    Y: %d    W: %d    H: %d    O:%d\n",detect.REF_OR_SYS,detect.num,detect.x,detect.y,detect.w,detect.h,detect.o);

}

我错过了一些简单的事吗? REF_OR_SYS总是打印出?? _?

解决方法 使用strdup()(通常可用,如果不使用malloc())通过sscanf()将读取的字符串复制到标签中:

detect.REF_OR_SYS = strdup(label);

当该函数返回标签超出范围时,REF_OR_SYS将是一个悬空指针.记得在不再需要时释放()它.

总结

以上是内存溢出为你收集整理的不在C中从struct打印字符串全部内容,希望文章能够帮你解决不在C中从struct打印字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: https://outofmemory.cn/langs/1219651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存