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);//设置下次的813输出方式是左对齐 cout.width(10);//设置下次813的输出长度是10 cout<<813<<815<<'\n'; cout.unsetf(ios_base::adjustfield);//清除对齐方式 cout.precision(2); cout.setf(ios_base::uppercase|ios_base::scientific);//设置16进制数用A到F表示,科学记数法用E表示 cout<<831.0; cout.flags(original_flags);//恢复初始参数 return 0; }
11-3:
#include<bits/stdc++.h> using namespace std; int main() { ofstream out("test1.txt"); out<<"已成功写入文件!"; out.close(); return 0; }
11-4:
#include<bits/stdc++.h> using namespace std; int main() { ifstream in("test1.txt"); string temp; getline(in,temp); cout<<temp; in.close(); return 0; }
应用练习1:
#include<bits/stdc++.h>//这里我是借鉴的大佬的方法,只要声明一个就够了 using namespace std; struct stu{ int num; string xuehao,name,cls; }tmp; ostream &operator <<(ostream &o,const stu &tmp){ o<<tmp.num<<" "<<tmp.xuehao<<" "<<tmp.name<<" "<<tmp.cls<<endl; return o; } ifstream fin; int main(){ ifstream fin("list.txt"); vector<stu>a; while(fin>>tmp.num>>tmp.xuehao>>tmp.name>>tmp.cls){ a.push_back(tmp); } fin.close(); ofstream fout("roll.txt"); srand((unsigned)time(NULL)); for(int i=0;i<5;i++) { int tmp2=rand()%a.size(); cout<<a[tmp2]; fout<<a[tmp2]; } fout.close(); return 0; }
这里还是有点疑惑的,明明list就在文件里为什么输出不了,其实我的代码就是借鉴的同学的,他就输出正确了。
#include<bits/stdc++.h> using namespace std; const char de[]={'"',',',' ','.','\0','!','?','-','(',')','#','/',':'};//分割字符串,配合strtok使用 int main(){ cout<<"Please Enter filename:\n"; string filename; cin>>filename; ifstream fin(filename.c_str()); string line; long long linenum=0,chnum=0,wordnum=0; while(getline(fin,line)){ char *tmp=new char[line.length()+1]; strcpy(tmp,line.c_str()); char *tmp2; tmp2=strtok(tmp,de);//这里是用的分割字符串,可以将符号都变成\0 if(tmp2!="")wordnum++; while((tmp2=strtok(NULL,de)))wordnum++; linenum++; chnum+=line.size(); } cout<<"行数:"<<linenum<<" 字符数:"<<chnum<<" 单词数:"<<wordnum; fin.close(); return 0; }
我觉得现在的实验还是很有难度的(对我来说),我觉得光靠自己的水平不足以把实验做完,所以我很多时候都是借鉴的同学的,但是我都会确保自己看懂,并自己再写一遍。我觉得这样效果还行。