11——3
#include<fstream>
using namespace std;
int main()
{
ofstream file;
file.open("test1.txt",ios_base::binary);
file<<"已成功添加字符!";
file.close();
return 0;
}
11-4
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
char ch;
ifstream myfile;
myfile.open("test1.txt");
while(myfile.get(ch))
cout<<ch;
myfile.close();
return 0;
}
11-7
#include<iostream>
using namespace std;
int main()
{
ios_base::fmtflags original_flags=cout.flags();//保存现在格式化设置,方便以后的恢复使用
cout<<812<<'|';
cout.setf(ios_base::left, ios_base::adjustfield);//输出格式改为右对齐
cout.width(10);//输出域宽设为10
cout<<813<<815<<'\n';
cout.unsetf(ios_base::adjustfield);//清楚setf中对齐方式的设置
cout.precision(2);//以小数点后保留2位输出,遵循四舍五入
cout.setf(ios_base::uppercase|ios_base::scientific);//科学格式显示 E,更改了浮点数的显示格式
cout<<831.0;
cout.flags(original_flags);//恢复最初保存的格式化设置
return 0;
}
2.
#include<iostream>
#include<fstream>
#include<string>
#include<ctime>
#include<cstdlib>
const int M=83;
using namespace std;
struct stu{
int num;
string xh, xm,bj;
};
int main()
{
string bb;
stu s[M];
char y;
while(cin>>bb)
{
ifstream is(bb.c_str());
if(!is)
{
cout<<"error"<<endl;
exit(1);
}
int i=0;
int j,a;
while(is>>s[i].num>>s[i].xh>>s[i].xm>>s[i].bj)
{
i++;
}
ofstream os("text2.txt");
srand(time(NULL));
cout<<"抽取学生?"<<endl;
while(cin>>y&&y=='Y')
{
a=rand()%i+1;
cout<<s[a].num<<" "<<s[a].xh<<" "<<s[a].xm<<" "<<s[a].bj<<" "<<endl;
os<<s[a].num<<" "<<s[a].xh<<" "<<s[a].xm<<" "<<s[a].bj<<" "<<endl;
}
is.close();
os.close();}
return 0;
}
3.
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
string bb;
cin >> bb;
ifstream is(bb.c_str());
if (!is) {
cout << "error" << endl;
exit(1);
}
int li = 1, wo = 0, ch = 0;
char c;
while (is.get(c))
{
ch++;
if ((c < 'A' || c > 'Z'&&c < 'a' || c > 'z')&&c!='\n')
++wo;
if (c == '\n')
++li;
}
char a;
cout<<"查看字符数:a"<<endl<<"查看单词数:b"<<endl<<"查看行数:c"<<endl;
while(cin>>a)
{
switch(a){
case 'a':
cout << "字符数:" << ch << endl;
continue;
case 'b':
cout << "单词数:" << wo << endl;
continue;
case 'c':
cout << "行数:" << li<<endl;
continue;
}
}
is.close();
return 0;
}
第二道题中当使用getline()输入文件时,输出的为乱码,后考虑用类或者结构体定义每个学生信息,但在输出时有时会只输出一个数字。流的掌握不好,有的概念还理解不清。