珠海建设企业网站的公司,wordpress页面结构,郑州网站建设公司 排行,建站之星 discuz在C语言中#xff0c;数据的输入和输出#xff08;简写为I/O#xff09;包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间#xff08;当然可用该空间存储任何信息#xff09;进行输入输出这三个方面。对标准输入设备和标…在C语言中数据的输入和输出简写为I/O包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间当然可用该空间存储任何信息进行输入输出这三个方面。对标准输入设备和标准输出设备的输入输出简称为标准I/O对在外存磁盘上文件的输入输出简称为文件I/O对内存中指定的字符串存储空间的输入输出简称为串I/O。C语言系统为实现数据的输入和输出定义了一个庞大的类库它包括的类主要有ios,istream,ostream,iostream,ifstream,ofstream,fstream,istrstream,ostrstream,strstream等其中ios为根基类其余都是它的直接或间接派生类。ios为根基类它直接派生四个类输入流类istream、输出流类ostream、文件流基类fstreambase和字符串流基类strstreambase输入文件流类同时继承了输入流类和文件流基类当然对于根基类是间接继承输出文件流类ofstream同时继承了输出流类和文件流基类输入字符串流类istrstream同时继承了输入流类和字符串流基类输出字符串流类ostrstream同时继承了输出流类和字符串流基类输入输出流类iostream同时继承了输入流类和输出流类输入输出文件流类fstream同时继承了输入输出流类和文件流基类输入输出字符串流类strstream同时继承了输入输出流类和字符串流基类。“流”就是“流动”是物质从一处向另一处流动的过程。C流是指信息从外部输入设备如键盘和磁盘向计算机内部即内存输入和从内存向外部输出设备如显示器和磁盘输出的过程这种输入输出过程被形象地比喻为“流”。为了实现信息的内外流动C系统定义了I/O类库其中的每一个类都称作相应的流或流类用以完成某一方面的功能。根据一个流类定义的对象也时常被称为流。如根据文件流类fstream定义的一个对象fio可称作为fio流或fio文件流用它可以同磁盘上一个文件相联系实现对该文件的输入和输出fio就等同于与之相联系的文件。C系统中的I/O类库其所有类被包含在iostream.h,fstream.h和strstrea.h这三个系统头文件中各头文件包含的类如下iostream.h包含有ios, iostream, istream, ostream, iostream_withassign, istream_withassign, ostream_withassign等。fstream.h包含有fstream, ifstream, ofstream和fstreambase以及iostream.h中的所有类。Strstrea.h包含有strstream, istrstream, ostrstream和strstreambase以及iostream.h中的所有类。在一个程序或一个编译单元即一个程序文件中当需要进行标准I/O操作时则必须包含头文件iostream.h当需要进行文件I/O操作时则必须包含头文件fstream.h同样当需要进行串I/O操作时则必须包含头文件strstrea.h。在一个程序或编译单元中包含一个头文件的命令格式为“#include头文件名”当然若头文件是用户建立的则头文件名的两侧不是使用尖括号而是使用双引号。当系统编译一个C文件对#include命令进行处理时是把该命令中指定的文件中的全部内容嵌入到该命令的位置然后再编译整个C文件生成相应的目标代码文件。C不仅定义有现成的I/O类库供用户使用而且还为用户进行标准I/O操作定义了四个类对象它们分别是cin,cout,cerr和clog其中cin为istream_withassign流类的对象代表标准输入设备键盘也称为cin流或标准输入流后三个为ostream_withassign流类的对象cout代表标准输出设备显示器也称为cout流或标准输出流cerr和clog含义相同均代表错误信息输出设备显示器。因此当进行键盘输入时使用cin流当进行显示器输出时使用cout流当进行错误信息输出时使用cerr或clog。在istream输入流类中定义有对右移操作符重载的一组公用成员函数函数的具体声明格式为istream operator(简单类型标识符);简单类型标识符可以为char, signed char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, float, double, long double, char*, signed char*, unsigned char*之中的任何一种对于每一种类型都对应着一个右移操作符重载函数。由于右移操作符重载用于给变量输入数据的操作所以又称为提取操作符即从流中提取出数据赋给变量。当系统执行cinx操作时将根据实参x的类型调用相应的提取操作符重载函数把x引用传送给对应的形参接着从键盘的输入中读入一个值并赋给x因形参是x的别名后返回cin流以便继续使用提取操作符为下一个变量输入数据。当从键盘上输入数据时只有当输入完数据并按下回车键后系统才把该行数据存入到键盘缓冲区供cin流顺序读取给变量。还有从键盘上输入的每个数据之间必须用空格或回车符分开因为cin为一个变量读入数据时是以空格或回车符作为其结束标志的。当cinx操作中的x为字符指针类型时则要求从键盘的输入中读取一个字符串并把它赋值给x所指向的存储空间中若x没有事先指向一个允许写入信息的存储空间则无法完成输入操作。另外从键盘上输入的字符串其两边不能带有双引号定界符若带有只作为双引号字符看待。对于输入的字符也是如此不能带有单引号定界符。在ostream输出流类中定义有对左移操作符重载的一组公用成员函数函数的具体声明格式为ostream operator(简单类型标识符);简单类型标识符除了与在istream流类中声明右移操作符重载函数给出的所有简单类型标识符相同以外还增加一个void* 类型用于输出任何指针但不能是字符指针因为它将被作为字符串处理即输出所指向存储空间中保存的一个字符串的值。由于左移操作符重载用于向流中输出表达式的值所以又称为插入操作符。如当输出流是cout时则就把表达式的值插入到显示器上即输出到显示器显示出来。当系统执行cout操作时首先根据X值的类型调用相应的插入操作符重载函数把X的值按值传送给对应的形参接着执行函数体把X的值亦即形参的值输出到显示器屏幕上从当前屏幕光标位置起显示出来然后返回COUT流以便继续使用插入操作符输出下一个表达式的值。当使用插入操作符向一个流输出一个值后再输出下一个值时将被紧接着放在上一个值的后面所以为了让流中前后两个值分开可以在输出一个值之后接着输出一个空格或一个换行符或其他所需要的字符或字符串。