就温向客回 1.ios流库的结构 Istream和 ostream 2.流对象cin一般指键盘。 流对象cout一般指屏幕 3输入/输出格式控制的方 法: 使用ios的成员函数 使用操作函数 cingetline(buffer, SIZE) cout width(10) cout << setw(10)<<x cout<< setw(10)<< setfill(*)<<x
1. ios 流库的结构: istream 和 ostream 2. 流对象cin一般指键盘。 流对象cout一般指屏幕。 3.输入/输出格式控制的方 法: 使用ios 的成员函数 使用操作函数 cin.getline(buffer, SIZE); cout.width(10); cout << setw(10) << x; cout << setw(10) << setfill('* ') << x;
(++ C+十 4+十 ++ 输出与输入 用户自定义类型的输入/输出 文件的输入/输出
输出与输入 • 用户自定义类型的输入/输出 • 文件的输入/输出 输入/输出流库
化熟就 (++ C+十 4+十 ++ 自定义输入/输出类型的目的 使用户能使用简洁、有效、便利的方法输入/输 出特殊结构的数据, 如:电话号码:025-349888 三维点的坐标:(1,2,3) 实现自定义输入输出类型的手段 通过对输入()和输出(《)运算符的重载, 定义特殊的输入/输出结构
用户自定义类型的输入/输出 自定义输入/输出类型的目的 使用户能使用简洁、有效、便利的方法输入/输 出特殊结构的数据, 如:电话号码:025-3498888 三维点的坐标:(1,2,3) 实现自定义输入/输出类型的手段 通过对输入 (»)和输出(«)运算符的重载, 定义特殊的输入/输出结构
毫喜自定义类型的 C++ (++ C+十 4+十 ++ 例1:电话号码的输入/输出 #include class PhoneNumber friend ostream& operator>(istream & PhoneNumber ∥重载输入运算符 private char area Code[4], exgl4], line[ 5] ostream &operator >(istream &input, PhoneNumber &num) input getline(( num. area Code,4)∥读入地区号 Input. Ignore(),∥跳过横线 input getline(num exg. 4); input getline(num line, 5) return input;∥此语句的目的:实现n>a>>b>>c;}
例1:电话号码的输入/输出 #include class PhoneNumber { friend ostream &operator > (istream &, PhoneNumber &); //重载输入运算符 private: char areaCode[4], exg[4], line[5]; }; ostream &operator > (istream &input, PhoneNumber &num) { input.getline(num.areaCode,4); //读入地区号 input.ignore( ); //跳过横线- input.getline(num.exg,4); input.getline(num.line,5); return input; // 此语句的目的:实现 in >> a >> b >> c; } 用户自定义类型的输入/输出
还生看整自定义类把的 (++ 例1:电话号码的输入/输出(续) void main(i PhoneNumber phone;∥定义一个对象实例 phone cout > phone ∥应用重载的输入运算符读入自定义的类型数据 cout <<" The phone number entered was: <<endl phone<<endl,∥应用重载的输出运算符写出自定义的类型数据 结果: Enter a phone number in the form025-349333 025-3492470 The phone number entered was 025-349-2470
例1:电话号码的输入/输出(续) void main( ) { PhoneNumber phone; //定义一个对象实例phone cout > phone; //应用重载的输入运算符读入自定义的类型数据 cout << " The phone number entered was :" << endl << phone << endl; //应用重载的输出运算符写出自定义的类型数据 } 结果: Enter a phone number in the form 025-3493333: 025-3492470 The phone number entered was : 025-349-2470 用户自定义类型的输入/输出
户自定义类型的输入 C++ (++ C+十 4+十 ++ 例2:圆的相关数据的输出 #include class Circle i friend ostream& operator<<( ostream&, const circle&),∥重载输出运算符 public Circle(float a, float b, float c)f radius=a; x=b; y=c; private float radius;/圆的半径 fld tx,y;/圆心的坐标 ostream &operator <<(ostream &output, const Circle &C) output <<"Center=["<<Cx<<","<<Cy<<: <<endl Ra adits C radius < endl return outpu void main( { Circle c(2.5,5,10) 结果: Center[5,10] Radius=2.5 cout <<o
例2:圆的相关数据的输出 #include class Circle { friend ostream &operator << (ostream &, const Circle &); //重载输出运算符 public: Circle(float a, float b, float c){ radius=a; x=b; y=c;} private: float radius; //圆的半径 float x, y; //圆心的坐标 }; ostream &operator << (ostream &output, const Circle &C) { output << "Center= [" << C.x << ", " << C.y << "]; " << endl << " Radius = " << C.radius << endl; return output;} void main( ) { Circle C(2.5, 5, 10); cout << C; } 用户自定义类型的输入/输出 结果: Center=[5, 10]; Radius = 2.5
唱点成件的输入输 (++ C+十 4+十 ++ 文件输入/输出的过程 (1)在程序中包含头文件 fstream. h (2)定义流对象,如: ifstream myin; ofstream mout (3)使用open函数打开文件 (4)进行文件的读/写操作 (5)使用 close函数关闭文件
文件输入/输出的过程 (1) 在程序中包含头文件fstream.h (2) 定义流对象,如:ifstream myin; ofstream myout; (3) 使用open函数打开文件 (4) 进行文件的读/写操作 (5) 使用close函数关闭文件 文件的输入/输出
会文件的输入/输出 (++ C+十 4+十 ++ 定义流对象与打开文件 方法一: 定义流对象与打开文件由两条语句完成 ofstream mout ∥定义流对象 mout. open( myfile”,ios;out,0),打开文件 mout<<“ Write some words in myfile”,∥向文件写数据 方法二: 定义流对象与打开文件由一条语句完成 ofstream mout( myfile”,ios:out,O);定义流对象和打开文件 mout<<" Write some words in myfile";∥向文件写数据
方法一: 定义流对象与打开文件由两条语句完成 ofstream myout; //定义流对象 myout.open(“myfile ”, ios::out, 0); //打开文件 myout << “Write some words in myfile ”; //向文件写数据 定义流对象与打开文件 方法二: 定义流对象与打开文件由一条语句完成 ofstream myout(“myfile ”, ios::out, 0); //定义流对象和打开文件 myout << "Write some words in myfile "; //向文件写数据 文件的输入/输出
文件的输入 (++ C+十 4+十 ++ 定义流对象与打开文件:注意点 例3: ofstream mout( myfile”,ios:out,O);∥定义流对象和打开文件 mout<<" Write some words in myfile";∥间文件写数据 (1) myfile是外部文件名,即一个具体的要写入数据的文件 () mout是程序中使用的流对象名,是外部文件的逻辑名。 其中:ios:out表示是输出文件 输入文件可定义为: ifstream myin(“ myfile, 1oS.In,O) 0表示为一般文件。其他文件类型有: 0:一般文件 1:只读文件 4:系统文件
定义流对象与打开文件:注意点 例3: ofstream myout(“myfile ”, ios::out, 0); //定义流对象和打开文件 myout << "Write some words in myfile "; //向文件写数据 文件的输入/输出 (1) myfile 是外部文件名,即一个具体的要写入数据的文件。 (2) myout 是程序中使用的流对象名,是外部文件的逻辑名。 其中: ios::out 表示是输出文件。 输入文件可定义为:ifstream myin(“myfile”, ios::in, 0); 0 表示为一般文件。其他文件类型有: 0: 一般文件 1: 只读文件 4: 系统文件
文件的输入 (++ C+十 4+十 ++ 例4:把一个整数、一个符点数和一个字符串写入文件test #include∥/包含文件输出流 void main( ofstream mout"tst"),∥定义用户自己的流对象 mout,以及文件名test 这里没有写ios:out,缺省即为此值 mout<<10<""<123.45<""<" object n";∥向文件写数据 mout. close( 关闭文件 问题:万一文件打不开怎么办?可不可以输出错误信息?
例4:把一个整数、一个符点数和一个字符串写入文件 test 文件的输入/输出 #include #include //包含文件输出流 void main( ) { ofstream myout("test"); //定义用户自己的流对象myout,以及文件名test //这里没有写ios::out,缺省即为此值 myout << 10 << " " << 123.45 << " " << "object\n"; //向文件写数据 myout.close( ); //关闭文件 } 问题:万一文件打不开怎么办?可不可以输出错误信息?