VC中烫烫烫出现的解决办法

 

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