getline(istream &in, string &s)
从输入流读入一行到string s
- #include<iostream>
- #include<fstream>
- #include<string>
- using namespace std;
- int main()
- {
- string buff;
- ifstream infile;
- ofstream outfile;
- cout<<"Input file name: "<<endl;
- cin>>buff;
- infile.open(buff.c_str());
- if(!infile)
- cout<<"error"<<buff<<endl;
- cout<<"Input outfile name: "<<endl;
- cin>>buff;
- outfile.open(buff.c_str());
- while(getline(infile, buff))
- outfile<<buff<<endl;
- infile.close();
- outfile.close();
- return 0;
- }
2.cin.getline() // 接受一个字符串,可以接收空格并输出
istream &getline( char *buffer, streamsize num );
#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}
3、cin>>
用法1:最基本,也是最常用的用法,输入一个数字:
#include <iostream>
using namespace std;
main ()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}
输入:2[回车]3[回车]
输出:5
注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等)
cin>>noskipws>>input[j];//不想略过空白字符,那就使用 noskipws 流控制
用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin>>a;
cout<<a<<endl;
}
输入:jkljkljkl
输出:jkljkljkl
输入:jkljkl jkljkl //遇空格结束
输出:jkljkl
4、cin.get()
用法1: cin.get(字符变量名)可以用来接收字符
#include <iostream>
using namespace std;
main ()
{
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<<ch<<endl;
}
输入:jljkljkl
输出:j
用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
#include <iostream>
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
cout<<a<<endl;
}
输入:jkl jkl jkl
输出:jkl jkl jkl
输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.