我的程序错在哪为什么会输出乱码?

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:31:37
#include<iostream.h>
#include<stdio.h>
#define size 10

void main()
{

char array[size],ch,*p;
ch=getchar();
int i=0;
while(ch!='\n'&&i<size)
{
array[i++]=ch;
ch=getchar();
}

p=array;
while(*p!='\n')

{ cout<<*p;++p;}

}

忘了加字符串结束符\0。
在p=array的前面加一句:

array[size-1] = 0;

很简单,当你的输入超过十个字符还不按回车的话,输出时在整个数组都找不到回车符,就会一直接着进行下去,后面的输出就不是你所能预测的乱码了!