输入输出相关的类
与输入输出操作相关的类
istream是用于输入的流类,cin就是该类的对象。
ostream是用于输出的流类,cout就是该类的对象。
ifstream是用于从文件读取数据的类。
ofstream是用于向文件写入数据的类。
iostream是既能用于输入,又能用于输出的类。
fstream 是既能从文件读取数据,又能向文件写入数据的类。
判断输入流结束
int x;
while(cin>>x){
}
return 0;
如果是从文件输入,比如前面有freopen(“some.txt”,”r”,stdin);
那么,读到文件尾部,输入流就算结束
如果从键盘输入,则在单独一行输入Ctrl+Z代表输入流结束
istream 类的成员函数
istream & getline(char * buf, int bufSize);
从输入流中读取bufSize-1个字符到缓冲区buf,或读到碰到‘\n’
为止(哪个先到算哪个)。
istream & getline(char * buf, int bufSize,char delim);
从输入流中读取bufSize-1个字符到缓冲区buf,或读到碰到delim字
符为止(哪个先到算哪个)。
两个函数都会自动在buf中读入数据的结尾添加\0’。,
‘\n’或
delim都不会被读入buf,但会被从输入流中取走。如果输入流中
‘\n’或delim之前的字符个数达到或超过了bufSize个,就导致读
入出错,其结果就是:虽然本次读入已经完成,但是之后的读入就
都会失败了。
可以用 if(!cin.getline(…)) 判断输入是否结束
bool eof(); 判断输入流是否结束
int peek(); 返回下一个字符,但不从流中去掉.
istream & putback(char c); 将字符ch放回输入流
istream & ignore( int nCount = 1, int delim = EOF );
从流中删掉最多nCount个字符,遇到EOF时结束。
流操纵算子
• 整数流的基数:流操纵算子dec(10进制),oct(8进制),hex(16进制),setbase(设置任意进制)
• 浮点数的精度(precision,setprecision)
• 设置域宽(setw,width)
• 用户自定义的流操纵算子
使用流操纵算子需要 #include
流操纵算子
• 整数流的基数:流操纵算子dec,oct,hex,setbase