文章目录
- cin用法
- cin.getline()用法
- getline()用法
- cin.get()的用法
- 注意的问题
cin用法
用法:接收一个字符串,一个数字或一个字符,遇“空格”、“TAB”、“回车”就结束
#include <iostream>
using namespace std;
int main()
{
char st[100];while (cin >> st)cout<<st<<endl;return 0;
}
cin.getline()用法
用法:接收一个字符串,可以接收空格并输出
#include <iostream>
using namespace std;
int main()
{
char m[20];cin.getline(m, 5);cout << m << endl;return 0;
}
接收5个字符到m中,其中最后一个为’\0’,所以只看到4个字符输出;
总结:
1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符);
2、当第三个参数省略时,系统默认为’\0’;
3、如果将例子中cin.getline()改为cin.getline(m,5,‘a’);当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
getline()用法
用法:接收一个字符串,可以接收空格并输出,需包含头文件,但是不能接受字符数组,如果把代码中的string改成char.则会报错。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;while(getline(cin, str))cout << str << endl;return 0;
}
cin.get()的用法
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
char s[100];cin.get(s, 10);cout<<s<<endl;return 0;
}
注意:cin.get()对string不适用,用法大致与cin.getline()类似。
注意的问题
1、cin.getline()属于iostream流,而getline()属于string流,是不一样的两个函数
2、当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过
str="\n";
getline(cin,str);
的方式将回车符作为输入流cin以清除缓存,如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。
例如:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int age;cout << "请输入你的年龄: ";cin >> age;cout << "你的年龄是: " << age << "\n";string mystr;cout << "What's your name? " << endl;mystr = "\n";getline(cin, mystr);getline(cin, mystr);cout << "Hello," << mystr << "\n";return 0;
}
若不加:mystr="\n";
getline(cin,mystr);则会出现下列情况
3.c++中要使用gets和puts,则要puts_s()和gets_s(),对string不适用。
以上可能有错,请多指教