例: 输入个数不确定的成绩
#include <iostream> using namespace std; int main( ) { float grade; cout<<"enter grade:"; while(cin>>grade)//能从cin流读取数据 { if(grade>=85) cout<<grade<<" GOOD!"<<endl; if(grade<60) cout<<grade<<" fail!"<<endl; cout<<"enter grade:"; } cout<<"The end."<<endl; return 0; }
用于字符输入的流成员函数——get函数
(1)不带参数的get函数
#include <iostream> using namespace std; int main( ) { int c; cout<<"enter a sentence:"<<endl; while((c=cin.get())!=EOF) cout.put(c); return 0; }
(2) 有一个参数的get函数
#include <iostream> using namespace std; int main( ) { char c; cout<<"enter a sentence:"<<endl; while(cin.get(c)) //读取一个字符赋给字符变量c,如果读取成功,cin.get(c)为真 cout.put(c); cout<<"end"<<endl; return 0; }
(3) 有3个参数的get函数
#include <iostream> using namespace std; int main( ) { char ch[20]; cout<<"enter a sentence:"<<endl; cin.get(ch,10,'/');//指定‘/’符号为终止字符 cout<<ch<<endl; return 0; }
用于输入一行字符的流成员函数——getline函数
#include <iostream> using namespace std; int main( ) { char ch[20]; cout<<"enter a sentence:"<<endl; cin>>ch; cout<<"The string read with cin is:"<<ch<<endl; cin.getline(ch,20,'/');//读19个字符或遇'/'结束 cout<<"The second part is:"<<ch<<endl; cin.getline(ch,20); //读19个字符或遇'/n'结束 cout<<"The third part is:"<<ch<<endl; return 0; }
判断输入(文件)是否结束——eof函数
#include <iostream> using namespace std; int main( ) { char c; while(!cin.eof( )) //eof( )为假表示未遇到文件结束符 if((c=cin.get( ))!=' ') //检查读入的字符是否为空格字符 cout.put(c); return 0; }
输入流其他函数——
#include <iostream> using namespace std; int main( ) { char c[20]; int ch; cout<<"please enter a sentence:"<<endl; cin.getline(c,15,'/'); cout<<"The first part is:"<<c<<endl; ch=cin.peek( ); //取当前字符 cout<<"next character: "<<char(ch)<<endl; cin.putback(c[0]); //插入c[0] cin.getline(c,15,'/'); cout<<"The second part is:"<<c<<endl; return 0; }