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不适用。 以上可能有错,请多指教
|