C++的输入方法

参考连接:https://www.cnblogs.com/wft1990/p/5861529.html

一、cin,可以接受数字和字符串的输入,遇空格,Tab和回车结束

二、cin.get()

用法1:用来接受一个字符,cin.get(字符变量) 与 字符变量 = cin.get() 结果一样 例子如下:

#include<iostream>
#include<string>
using namespace std;

int main() {
	char next;
	//next = cin.get();
	cin.get(next);//cin.get(next)与next = cin.get()一个意思,查看cin.get()内置函数可以发现返回的this指针
	cout << next << endl;
	while (1);
}

输入abc 

输入空格+bc

用法2:cin.get(字符数组名,字符数组长度),用于接受固定长度的字符串,包括空格

#include<iostream>
#include<string>
using namespace std;

int main() {
	char next[10];
	cin.get(next,10);
	cout << next << endl;
	while (1);
}

输入:abc bca 

 

输入:abcdefghij(10个字符长度)

因为字符数组后面有一个‘\0’结束符,所以只能存放9个元素。

这里顺便记录一下计算字符数组长度的两个常用方法:

sizeof(数组名)/sizeof(数组类型)和strlen(数组名)

1、sizeof() 如果数组长度在中括号【】 中给定,那么sizeof()方法求得就是中括号【】的大小;如果数组长度没有在【】中指定,那么sizeof()计算数组长度的结果就是包括结束符‘\0’的长度。

2、strlen()求字符长度求的结果就是不包括‘\0’的长度

#include<iostream>
#include<string.h>
using namespace std;

int main() {
	char str1[10] = "China";
	char str2[] = "China";
	int sizeof_len_str1 = sizeof(str1) / sizeof(char);
	int sizeof_len_str2 = sizeof(str2) / sizeof(char);
	cout << sizeof_len_str1 << endl;//10  [10]确定大小,sizeof求的结果和[]一样
	cout << strlen(str1) << endl;//5  strlen()只计算实际字符个数,不包括结束符'\0'
	cout << sizeof_len_str2 << endl;//6  []没有指定大小,sizeof求的结果包括结束符'\0'
	cout << strlen(str2) << endl;//5  strlen()只计算实际字符个数,不包括结束符'\0'
	while (1);
}

三、 cin.getline() 接受一行字符,三个参数,第一个参数是数组名,第二个参数是接受的长度,第三个是默认参数'\0'表示输入的结束符。

#include<iostream>
using namespace std;

int main() {
	char ch[5];
	cin.getline(ch,5);//abcdefg
	cout << ch << endl;//abcd
	while (1);
}

设置‘c’为结束符

#include<iostream>
using namespace std;

int main() {
	char ch[5];
	cin.getline(ch,5,'c');//abcdefg
	cout << ch << endl;//ab
	while (1);
}

四、getline()接受一个字符串,可以接受空格并输出,需要包含#include<string>

#include<iostream>
#include<string>
using namespace std;

int main() {
	string s;
	getline(cin,s);//abc cba
	cout << s << endl;//abc bca
	while (1);
}

和cin.getline()類似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的兩個函數

参考连接:https://www.cnblogs.com/wft1990/p/5861529.html

猜你喜欢

转载自blog.csdn.net/Li_haiyu/article/details/88767379