广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++关于字符的接收与输出操作示例
  • 819
分享到

C++关于字符的接收与输出操作示例

C++字符接收C++字符输出 2023-01-06 09:01:25 819人浏览 泡泡鱼
摘要

C语言中,在使用scanf("%c",&data);读取一个字符时,有时会遇到scanf吞回车符的情况。 这里搜到几种常用的解决方法: 1.在scanf(

C语言中,在使用scanf("%c",&data);读取一个字符时,有时会遇到scanf吞回车符的情况。 这里搜到几种常用的解决方法:

1.在scanf()中使用’\n’屏蔽回车符号。

scanf("\n%c",&c);

2.在scanf()格式串最前面添加空格,屏蔽回车字符

scanf(" %c",&c); //%c前面加空格,过滤回车

3.在接收字符前,使用getchar()来读取一次回车符号

getchar(); //专门用来读取上次输入的回车符号
scanf("%c",&c);

4.在接收字符前,使用fflush()清空输入流中缓冲区中的内容

fflush(stdin); //清空输入流缓冲区的字符,注意必须引入#include<stdlib.h>头文件
scanf("%c",&c);

c++中输出字符数组时的常见问题:

例1:

#include<iOStream>
using namespace std;
int main() 
{
	char a[8];
	for (int i = 0; i < 8; i++)
		cin >> a[i];
	cout << a << endl;
	return 0;
}

运行结果:

分析:输出时出现汉字乱码 原因:字符数组里存放内容没有字符结束标志 ‘\0’

解决方法:

#include<iostream>
using namespace std;
int main() 
{
	char a[8];
	for (int i = 0; i < 8; i++)
		cin >> a[i];
	a[8] = '\0'; //最后留一个位置给'\0'
	cout << a << endl;
	return 0;
}

运行结果:

分析:在字符串的末尾手动加’\0’,此时循环遇到’\0’即结束,不会出现汉字乱码

例2:

#include<iostream>
using namespace std;
int main() 
{
	char Words[] = { 'a', 'b', 'c', 'd', 'e' };
	cout << words << endl;
	return 0;
}

同例1情况,字符数组末尾没有’\0’作为结束,会出现汉字乱码

解决方法:手动在数组末尾加’\0’

#include<iostream>
using namespace std;
int main() 
{
	char words[] = { 'a', 'b', 'c', 'd', 'e','\0' };
	cout << words << endl;
	return 0;
}

以上两种方法都需要自己手动加’\0’,也可以使用另外两种系统自动加’\0’的方法

方法1:直接用cin输入字符数组,最后系统会自动加上\0空字符,且它占数组的一个char内存

#include<iostream>
using namespace std;
int main() 
{
	char a[9];
	cin >> a ;//最后会自动加上\0空字符,且它占数组的一个char内存
	cout << a  << endl;
	return 0;
}

方法2:运用get()函数或getline函数,同样最后系统会自动加上\0空字符,且它占数组的一个char内存

#include<iostream>
using namespace std;
int main()
{
	char ch[50];
	cin.getline(ch, 30);//可以换成cin.get(ch, 30)
	cout << ch << endl;
	return 0;
}

到此这篇关于C++关于字符的接收与输出操作示例的文章就介绍到这了,更多相关C++字符接收与输出内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++关于字符的接收与输出操作示例

本文链接: https://www.lsjlt.com/news/176902.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作