Hello world!
Hello world! 烫烫烫
请按任意键继续. . .
怎么把这三个烫字去掉呀
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char str[14]="Hello world!";
for(int i=0;i<strlen(str);i++)
{
cout.put(str[i]);
}
cout<<endl;
cout.write(str,20)<<endl;
system("pause");
return 0;
}
字符串是以'\0'为输出结束的。
14位的char型数组,不可以用20位输出。
str长度是14,你write(str,20),为啥写20呢,超过str长度了啊
str数组只有14个字符,这样访问数组越界了,显示自然就是乱码了。
for里面改成i<strlen(str)+1
cout.write(str,20)中20改成strlen(str)+1;
代码如下:如有帮助,请采纳一下,谢谢。
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
char str[14]="Hello world!";
for(int i=0;i<strlen(str)+1;i++) //修改地方1: i<strlen(str)改为i<strlen(str)+1
{
cout.put(str[i]);
}
cout<<endl;
cout.write(str,strlen(str)+1)<<endl; //修改地方2 20改为strlen(str)+1
system("pause");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632