三叶草 发表于 2021-12-29 12:18:40

《C++笔记 第一部分 C++语言篇》第2章 输入输出流

2.1概述
输入和输出并不是C++语言中的正式组成成分,C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。
C++的输出和输入是用“流”(stream)的方式实现的。
在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行输入输出语句时,先把数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到输入输出语句中的endl(或′\n′,ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。

图1

2.2 C++输出
 输出流即从程序中输出一系列的字符串,使用cout对象。
 引用头文件
#include <iostream>
using namespace std;
 基本形式如下:
cout<<表达式1<<表达式2<<……;

 换行
控制符endl
换行符:\
 一个cout语句可以分写成若干行
int main(int argc, char *argv [])
{
cout << "hello world" <<endl;
cout << "hello"
      "world"
      <<endl;
return 0;
}
cout输出时,系统会自动判别输出数据的类型
int main(int argc, char *argv [])
{
int a = 123;
double b = 456.789;
char c='a';
cout << a << b << c <<endl;
return 0;
}

2.3 C++输入
 输入流即向程序输入一系列的字符串,使用cin对象。
 引用头文件
#include <iostream>
using namespace std;

 基本形式如下:
cin >> 变量1 >> 变量2 >> …;
注意:输入时,以空行或回车作为一个变量输入结束。
 cin输入时,系统会自动识别输入数据的类型
int main(int argc, char *argv [])
{
int ival;
char ch;
cin >>ival >>ch;

cout << ival << ch <<endl;
return 0;
}
 一个cin语句可以分写成若干行
int main(int argc, char *argv [])
{
int ival;
char ch;
cin >>ival >>ch;
cout << "1 :" << ival << ch <<endl;
cin >> ival
      >>ch;
cout << "2:" << ival << ch << endl;
cin >> ival ;
cin >> ch;
cout << "3:" << ival << ch <<endl;
return 0;
}


2.3格式控制符
 设置状态标志流成员函数setf
一般格式:long ios::setf(long flags)
调用格式:流对象.setf(ios::状态标志)
表1

 清除状态标志流成员函数unsetf
一般格式:long ios::unsetf(long flags)
调用格式:流对象.unsetf(ios::状态标志);
 设置域宽流成员函数width
一般格式:int ios::width(int n)
调用格式:流对象.width(n);
注:它只对下一个流输出有效,输出完成后,恢复默认值0
 设置实数的精度流成员函数precision
一般格式:int ios::precision(int n)
调用格式:流对象.precision(n);
注:参数n在十进制小数输出时表示有效数字。标志fixed和scientific表示输出小数位数
 填充字符流成员函数fill
一般格式:char ios::fill(char ch)
调用格式:流对象.fill(ch);
注:当输出值达不到域宽时用填充符来填充,默认填充符为空格,与width函数搭配使用。
 预定义操作符
表2
预定义操作符
功能
输入/输出
dec
设置整数基数为10
输入/输出
hex
设置整数基数为16 输入/输出
oct
设置整数基数为8
输入/输出
setbase(n)
设置整数的基数为n(可取0或10代表十进制,8代表八进制和16代表十六进制,默认为0)
输入/输出
ws
跳过输入的空格符
输入
endl
输出一个换行符并刷新输出流
输出
ends
插入null,通常用来结束一个字符串
输出
flush
刷新一个输出流
输出
setfill©
设置填充符(默认为空格)
输出
setprecision(n)
设置实数精度n
输出
setw(n)
设置域宽n
输出
setiosflags(flags)
设置指定状态标志,多个用"|"分隔
输入/输出
resetiosflags(flags)
清除指定状态标志,多个用"|"分隔
输入/输出
表3







https://blog.51cto.com/u_11512283/4855171
页: [1]
查看完整版本: 《C++笔记 第一部分 C++语言篇》第2章 输入输出流