关于C++用cout输出字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C++用cout输出字符串相关的知识,希望对你有一定的参考价值。

这是我的程序
#include <iostream>
using namespace std;

class student

private :
int num,age; char name[10];
public :
student(int n,char m[],int y)
num=n;age=y;*name=*m;
display()cout<<"学号"<<num<<"姓名"<<name<<"年龄"<<age<<endl;
~student()
;

void main()
int xuehao,nianling;
char mingzi[10];
cout<<"依次输入学号、名字、年龄:"<<endl;
cin>>xuehao>>mingzi>>nianling;
student s(xuehao,mingzi,nianling);
s.display();
结果怎么会有汉字!
请各位高手多多指教!

参考技术A 那是因为你的字符串没有初始化,
可以使用memset(mingzi,0,10)将所有的字符初始化为0,这样字符串输出的时候,遇到0时就不在输出,就会完全将赋值的字符输出。
参考技术B 关于c++怎么用cout输出字符串,如果是用char定义了字符数组的话,直接输出字符数组名就行了,如果用的string类,同样直接输出。 参考技术C *name=*m改为strcpy(name, m);
VC++6.0 调试过本回答被提问者采纳
参考技术D char mingzi[10]='\0';\\这里初始化一下就不会有了 第5个回答  2010-06-15 在程序中,*name=*m是不正确的,因为将一个字符串复制给另外一个字符串的时候不能直接用=,因为此时的=不能将字符串正确的复制,此时只是简单的将地址复制给了另外一个变量,所以你得到的会是一些乱码。
正确的做法是:
调用标准库中的函数strcpy,就可以了
:strcpy(name,n);
注意:
在复制字符串的时候不能直接用复制号=,但是在string中复制可以直接用=就可以了。因为在string中系统重载了=复制号

c++怎么用cout输出字符串?

参考技术A

int ab[10] = 1,2,3,6,7;
char a[6] = 'h','a','p','p','y','\\0';
char ac[] = "happy";
cout<<ac<<endl;
cout<<ac<<endl;
cout<<ab<<endl;
字符数组是可以用这种方式输出的,因为数组名即代表首地址,数组是一块连续的内存空间,所以能直接输出.如果是其他类型的数组则输出的是一个地址.根本区别在于没有终止符,因此其他数组要是直接能cout就无法停止下来。

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++语言的程序因为要体现高性能,所以都是编译型的。

但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。

生成程序是指将源码(C++语句)转换成一个可以运行的应用程序的过程。

如果程序的编写是正确的,那么通常只需按一个功能键,即可搞定这个过程。

以上是关于关于C++用cout输出字符串的主要内容,如果未能解决你的问题,请参考以下文章

为啥c++中无法用cout输出字符串

c++如何用cout将自己的类直接输出为字符串

C++中关于string类型究竟能不能用cout输出的问题

在c++中如何用cout输出整个字符数组

C++怎么更改cout输出的内容的颜色?

C++中cout<<字符数组名;为啥能输出字符串?