IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 菜学C++ Day24 -> 正文阅读

[C++知识库]菜学C++ Day24

继续昨天的cin.get()、【成员函数:cin.get(数组名,数组长度,结束符)】、cin.getline()

  1. cin>>是从第一个非空白字符开始到下一个空白字符结束(缓冲区读数,残留数据(包括该结束的空白字符)下次直接读入,跳过输入)
    ?
  2. cin.get()
    它与cin.get(数组名,数组长度,结束符)是重载(函数名相同,但参数不同,所以达成的作用完全不同)
    1. ch=cin.get()和cin.get(char ch)都是读取一个字符的意思
    2. 且都对空格、制表符、换行符号不敏感,可以读入
      1. ?
        #include<iostream>
        using namespace std;
        int main() {
        	cout << "请输入两个字符:";
        	char a, b;
        	//输入无空格、含space、tab、enter
        	a = cin.get();
        	b = cin.get();
        	cout <<"a为:"<< a << int(a) << endl;
        	cout <<"b为:"<< b << int(b) << endl;
        	return 0;
        }
      2. ?无空格

      3. 有space(ASCII为32)

      4. ?有tab(ASCII为9)

      5. 有enter(ASCII为10)

  3. ?成员函数:cin.get(数组名,数组长度,结束符【默认为enter,且结束符仍在缓冲区】)
    1. 当一开始第一个输入字符(即前面无其他任何字符)就遇到结束符情况下,将不会正常输出,但缓冲区中依然有该结束符
      #include<iostream>
      using namespace std;
      int main() {
      	char a[5], b;
      	//输入“字符A立即enter”
      	cin.get(a,3,'A');//所以a在一开始就结束,不能正常输出,后续b也不能正常输出
          //利用cin.clear()可以清楚缓冲区中的错误数据
          cin.clear();
      	cin.get(b);
      	cout << "a为:" << a << int(a) << endl;
      	cout << "b为:" << b << int(b) << endl;
      	return 0;
      }
      1. ?若无cin.clear()
        ??

      2. 若有cin.clear()

        ??
  4. cin.getline(字符数组名,接收长度【可以超过本身定义的长度】,结束符)
    用法与cin.get(字符数组名,接收长度,结束符)极为类似
    1. cin.get()当输入超长时不会引起错误,后面cin操作会继续执行,且直接从缓冲区中取数据
      #include<iostream>
      using namespace std;
      int main() {
      	char a[5], b;
      	cin.get(a,3);
      	cin >> b;
      	cout << "a为:" << a  << endl;
      	cout << "b为: " << b << endl;
      	return 0;
      }
      结果:
    2. cin.getline()当输入超长时会引起错误,后面的cin操作将不再执行
      #include<iostream>
      using namespace std;
      int main() {
      	char a[5], c;
      	cin.getline(a,3);
      	cin >> c;
      	cout << "a为:" << a << endl;
      	cout << "c为: " << c << int(c) << endl;
      	return 0;
      }
      结果:

今天差不多就到这里吧,应该是差不多能分清楚了。不过这个CSDN的编辑操作把我搞懵了,我一个ctrl+z就把我一大段的东西都撤销了,而且恢复不了,还好几次都这样,就离谱!!!?


最后还是练了几道题:

字符串逆序输出
?

#include<iostream>
using namespace std;
int main() {
	char str[100], * s1=str, * s2=str, t;
	cin.getline(str, 100);
	//s1指向首地址,s2指向尾地址
	while (*s2 != '\0') 
		s2++;
	s2--;
	//交换头尾所指内容,地址传递
	while (s1 < s2) {
		t = *s1;
		*s1 = *s2;
		*s2 = t;
		s1++;
		s2--;
	}
	//非字符数组是不能整体输出的
	cout << str << endl;
	return 0;
}

测试结果:

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:41:26  更:2021-10-19 11:44:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 6:55:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码