流类库 输入输出
1、下面给出的程序用于打印九九乘法表,但程序中存在错误。请上机调试,使得此程序运行后,能够输出如下所示的九九乘法表。
源程序:
#include <iostream.h>
#include <iomanip.h>
int main()
{
int i,j;
cout<<"*";
for(i=1;i<=9;i++)
{
cout<<i<<" ";
}
cout<<endl;
for(i=1;i<=9;i++)
{
cout<<i;
for(j=1;j<=i;j++)
cout<<i*j;
}
return 0;
}
#include <iostream.h>
#include <iomanip.h>
int main()
{
int i,j;
cout<<"*";
for(i=1;i<=9;i++)
{
cout<<i<<" ";
}
cout<<endl;
for(i=1;i<=9;i++)
{
cout<<i<<" ";
for(j=1;j<=i;j++)
cout<<i*j<<setw(5);
cout<<endl;
}
return 0;
}
2、定义类Complex用来表示复数类,当创建复数对象时,如果没有给出初始值,则默认该复数为0,以友元形式重载运算符“<<”,“>>”,以实现用户对复数类对象的输入输出,并重载运算符“+”,以实现复数对象和普通整数变量的加法运算。
ostream &operator<<( ostream &out, Complex &p);
istream &operator>>( istream &in, Complex &p);
#include<iostream>
using namespace std;
class complex
{
private:
int r; int i;
public:
complex()
{
r=0; i=0;
}
friend istream& operator>>(istream& in,complex& s)
{
cout<<"请输入实部:"<<endl;
in>>s.r;
cout<<"请输入虚部:"<<endl;
in>>s.i;
return in;
}
friend ostream& operator<<(ostream& out,complex& s)
{
out<<"复数为:"<<endl;
out<<s.r<<"+"<<s.i<<"i"<<endl;
return out;
}
};
int main()
{
complex c;
cin>>c;
cout<<c;
return 0;
}
3、编写一程序,将从键盘读入的一个整数、一个双精度数据和一个字符串写到磁盘文件date.dat中。
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
ofstream pout("a.txt");
if(!pout)
{
cout<<"cannot open the file"<<endl;
return 1;
}
int i;cout<<"请输入整数:"<<endl;
cin>>i;
pout<<"整数为"<<endl<<i<<endl;
double b;cout<<"请输入双精度数据:"<<endl;
cin>>b;
pout<<"双精度数据为"<<endl<<b<<endl;
char a[30];cout<<"请输入字符串:"<<endl;
cin>>a;
pout<<"字符串为"<<endl<<a;
pout.close();
return 0;
}
4、将“a”至“z”的26个英文字母写入文件,而后从该文件中读出并显示出来。
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
ofstream pout("a.txt");
if(!pout)
{
cout<<"cannot open the file"<<endl;
return 1;
}
for(char i=97;i<=122;i++)
pout<<i;
pout.close();
char c;
fstream in;
in.open("a.txt",ios::in);
cout<<"文件读出:"<<endl;
while((c=in.get())!=EOF)
cout<<c;
cout<<endl;
return 0;
}
5、编写一个程序,将两个文本文件连接成一个文件,然后将此文件中所有小写字母转换成大写字母,并打印出来。
#include<iostream>
#include<fstream>
using namespace std;
int main()
{ char c;
fstream f1,f2,f3,f4;
f1.open("x.txt",ios::in);
f2.open("y.txt",ios::in);
f3.open("xy.txt",ios::out);
while((c=f1.get())!=EOF)
f3.put(c);
while((c=f2.get())!=EOF)
f3.put(c);
f3.close();
f3.open("xy.txt",ios::in);
cout<<"文件连接后为:"<<endl;
while((c=f3.get())!=EOF)
cout<<c;cout<<endl;
f4.open("xy.txt",ios::in);
cout<<"小写转化为大写后为:"<<endl;
while((c=f4.get())!=EOF)
cout<<char(toupper(c));cout<<endl;
return 0;
}