举例看 cin 的一些操作

Example 1:

#include<iostream>
using namespace std;
int main(){
    
    
	char a[20];
	cin.ignore(7);
	cin.getline(a,10);
	cout<<a<<endl;
	return 0;
}

输入输出:
在这里插入图片描述
分析:

  • cin.ignore(7) 表示忽略掉输入的前 7 个字符(I love )(两个空格)
  • cin.getline(a,10) 表示忽略掉 7 个字符后再读取 9 个字符,剩余的舍弃,注意是 9 个字符!因为结尾’ \0 ‘要自动占一个位置(图中 ’ 后面可没有空格哦)

Example 2:

输入一个字符串(可能有空格),输出字符串的长度并且倒序输出它。
分析:由于 cin 提取过程中会以空格为结束依据,故不能用 cin 提取字符串,可以用 getline( ) 接收空格:

#include<iostream>
#include<cstring>
using namespace std;
int main(){
    
    
	char a[1000];
	cin>>a;
	int n=strlen(a);
	cout<<n<<endl;
	for(int i=n-1;i>=0;i--)
		cout<<a[i];
	cout<<endl;
	return 0;
}

碰见空格就结束了:
在这里插入图片描述

#include<iostream>
#include<cstring>
using namespace std;
int main(){
    
    
	char a[1000];
	cin.getline(a,1000);//将可接收的元素个数设置的足够大,不足 999 没关系
	int n=strlen(a);
	cout<<n<<endl;
	for(int i=n-1;i>=0;i--)
		cout<<a[i];
	cout<<endl;
	return 0;
}

正确:
在这里插入图片描述

Example 3:

将输入的文本打印出来,回车标志结束

#include<iostream>
using namespace std;
int main(){
    
    
	char p;//
	cout<<"请输入一段文本:\n";
	while(cin.peek()!='\n')// cin.peek() 作用是检查输入的字符串中有没有换行符,一次只能检查一个字符
		cout<<(p=cin.get());// p 的数据类型是字符,这里一次只赋值一个字符,紧接着输出
	cout<<endl;
	return 0;
}

示例(有空格也没问题):
在这里插入图片描述

Example 4:

#include<iostream>
using namespace std;
int main(){
    
    
	const int size=50;//暂时自己查资料了解
	char a[size];
	cout<<"请输入一段文本:";
	cin.read(a,20);//只读入输入字符串的前 20 位
	cout<<" a 收集到的字符数为:"<<cin.gcount()<<endl;//计算读到的字符串长度(字符个数)
	cout<<"输入的文本信息是:";
	cout.write(a,20);//打印 a 的前 20 位字符
	cout<<endl;
	return 0;
}

示例:

在这里插入图片描述
注意:一个中文字符占两个字符位置哦!

猜你喜欢

转载自blog.csdn.net/interestingddd/article/details/114810593
cin