中易网

c++问题请高手指点为什么运行后后先乱码谢啦

答案:5  悬赏:80  
解决时间 2021-12-21 03:18
#include<iostream.h>
#include<string.h>
void main(){
char a[40];
int i=0;
cin.getline(a,40) ;
cout << a;
cout << strlen(a);
cout <<'\n';
while(1){
while(a[i]!=32){
cout << a[i];
i++;
}
cout << i;
i++;
cout <<'\n';
if(a[i]=='\n')
break;

}
}
最佳答案
#include<iostream.h>
#include<string.h>
void main(){
char a[40];
int i=0;
cin.getline(a,40) ;
cout << a;
cout << strlen(a);
cout <<'\n';
while(1) //总体来说这个循环没意义...
{

while(a[i]!='\0'){//'\n'不对的 getline是吸收输入的第一个\n' 把'\n'变成'\0'里面不会有'\n'的
cout << a[i];
i++;
}
cout <<"总共:" <<i;
// i++; //这里再加a[i]可就未知了
cout <<'\n';
if(a[i]=='\0')//'\n'不对的
break;

}
}
全部回答
字符数组的结束符是'/0’,不是'/n';
我暂时保留我的看法!
是你给a分配了40,又由于你输入的内容不足40 剩下的内容就是乱码了,比如你分配了 40 字符的内存但你值输入了20个字符,那20就是乱码
那肯定是莫个变量有问题 比如循环里有莫个变量 第一次运行变量没有改变 第二次等以后都改变了,要每次都赋以同样的值 不然就出现了你上述的之前可以 后来不行……
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
长春科技学院可以专接本专转本吗
酷厉的意思是什么啊?请解释下!
中国建设银行24小时自助银行(桂青支行)地址有
张集村委会地址有知道的么?有点事想过去!
为什么英语一个单词有好多意思,,日语单词是
苗岗村委会地址在什么地方,想过去办事
家將的意思是什么?家將的释义是什么啊?
户调的意思是什么啊?请解释下!
訾洼村委会地址有知道的么?有点事想过去!
战女神V暗线的两个结局是什么?求详细一点⋯
大家说,地球每一秒诞生多少个生命?人类是每
鸳鸯大板的意思是什么?鸳鸯大板的释义是什么
甲比乙等于5比3,乙比丙等于4比7,那么甲比乙
证据保全之后还需要收缴吗
京秩的意思是什么啊?请解释下!
推荐资讯
忠果的意思是什么啊?请解释下!
三個不開口,神仙難下手的意思是什么?三個不
达扬的意思是什么?达扬的释义是什么啊?
若基础梁是400x1000的梁其箍筋大小是多
美肤宝有哪些防晒霜?
老人不能自理,工资本谁管里?
租房提前退租应付违约金,但应该补偿房东损失
舒兰市工商行政管理局南城分局地址在哪,我要
costarica和malay哪个生产的cpu好
湖北哪里发生地震的最新相关信息
男盆友每次买东西都问我要不要,特别讨厌,要
不知不觉又一个月过去说说
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?