获取字符、字符串对象、字符串行的多种方式 
/**
* Created By Liu Xianmeng On 2022/12/10
*/
#include <bits/stdc++.h>
using namespace std;
int main(){
/* 【用法概述】
(1)只有getline或者cin.getline输入模式,才会吃掉最后的'\n' !!! 而get、cin>>对象、scanf都会保留'\n'
(2)cin.getling(字符数组名,接收的最长字符数)
(3)getline(cin, 字符串引用名,结束字符)
(4)cin>>对象名
*/
char arr[1000];
string str;
char ch;
cin.getline(arr,1000); // 会把末尾的换行吃掉 下一个getchar()获取不到'\n'
cin.get(arr,1000); // 获取换行之前的内容 不吃掉换行符 所以下一个getchar()可以获取到'\n'
cin.get(arr,1000).get(); // cin.get(..).get() -> 后面的get可以吃掉换行符
getline(cin, str, 'Q'); // 从cin输入流读取字符串 遇到字符'Q'结束(获取字符'Q'之前的所有内容并且吃掉'Q',后面的getchar获取不到'Q')
getline(cin, str); // 接收一个字符串 遇到'\n'(获取'\n'之前的内容包括 ' '、'\t' ) 并吃掉'\n' 后面的getchar获取不到'\n'
getline(cin, str); // getline的第二个参数只能传入定义的字符串对象
cin>>str; // 获取不带空字符的字符串并保留后面遇到的空字符 下一个getchar会捕获到str后面紧跟的空字符
cin>>str; // 是在输入流获取字符串对象 而scanf("%s", arr);是获取连续的非空字符 前者是C++的string对象模式 后者是C的字符数组存str的模式
// 我们知道字符串的本质就是字符串数组,C++对其进行了封装,有了string类,所以在C++中,可以对string对象直接操作,而在C语言中,不可以对string对象直接操作,只能间接操作其字符
scanf("%s", arr); // 必须传入字符数组名 实现的效果和 cin>>str 一样
ch = getchar(); // 获取一个任意字符
scanf("%c", &ch); // 获取一个任意字符
char chs[3];
scanf("%s", chs); // 获取一个字符chs[0]并用chs[1]吃掉换行符
printf("下断点进行调试");
return 0;
}
