sgdd.net
当前位置:首页 >> C++应该是两个问题 就输出数据时 会输出乱码和地址 >>

C++应该是两个问题 就输出数据时 会输出乱码和地址

类中的 姓名m_cName,职称m_cTitles,职务m_cJob这些你用的是数组吧,而且没有初始化吧。 能用string的话最好用string,非得用数组的话,要在构造函数里初始化。并且也写好拷贝构造函数和赋值操作符。

没有给da末尾赋值一个结束符(0x0) 看图,这是da的内存,10字节的空间,但后面是0xcc,而不是0x0 cout打印出来的字符串是遇0x0才结束,所以这才出现了乱码

其实不是乱码,是他的地址。字符数组属于*char如果把数组名输出,等于输出了 &ch[0]

std::cout

我觉得是你把字符串结束标记干掉了, 你把 那句赋值注释掉运行程序看看。 如果还有问题你让我看看你name数组和sex数组的长度定义的是多少?

string 只是char的容器 你要用wstring,这个里面封装的是wchar_t ,这个可以支持多字节字符。这个类的使用和string一样 ,因为它们都是来自一个模板。 注意,多字节字符字面常量 这样表示 L“你好我好大家好”,

方法1: 可以直接在生成的.C文件里加汉字 不过这些汉字在turboc界面中显示为乱码 不过并不影响程序的运行 方法2: 1、下载ucdos并解压 2、点击开始菜单->运行->输入cmd(或直接进入dos) 3、从dos下进入ucdos文件夹并运行ucdos.exe 4、成功运行ucd...

既然你用了c++以及fsteam来操作,那么字符串也转换成string,然后用

这个不是你程序的问题,是Windows记事本的Bug,因为程序输出的某些字符触发了这个bug,记事本把文件当成unicode编码处理,结果乱码。 把这句 ofile

string 是C++标准里的一个类,不是字符串,printf直接打印string类的话会将整个类的内存结构当做字符串来打樱要打印string字符串内容,请将printf("%s\n" ,Result);改为printf("%s\n" ,Result.c_str());

网站首页 | 网站地图
All rights reserved Powered by www.sgdd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com