寒假学习打卡第二天,给自己点赞啦。今天学习了小甲鱼的4到6节课,练习了文件的复制,总结了输入输出流,最后一节课学习了函数的重载。总体来说,学习感觉还可。
总结这两天的学习,我觉得会渴望学到更多的知识,可能在C++的学习上还需要练习一些综合思考性的题目,在C语言学习上还需要查漏补缺一下再着力提升一下基础的C语言认识。还有发现时间可以很充裕,着手写东西吧。nice~~~。
文件的复制:
#include<fstream>
#include<iostream>
int main()
{
fstream in("test.txt");
for(i=0;i<=10;i++)
{
in<<i;
}
in.close();
return 0;
}
#include<fstream>
#include<iostream>
int main()
{
fstream out("test.txt");
char x;
while(out<<x)
{
cout<<x;
}
out.close();
return 0;
}
还有关于常见的文件打开方式:
ios::in --打开一个可读取文件
ios::out --打开一个可写入文件
ios::binary --以二进制形式打开一个文件
ios::app --写入的所有数据被追加到文件的末尾
ios::trunk --删除文件原来已存在的内容
ios::nocreat --如果要打开的文件并不存在,那么以此函数调用open函数将无法进行。
ios::noreplece –如果要打开的文件已存在,试图用open函数打开时返回一个错误。
输入输出小结:
三个试炼:
1.清除硬盘的提示
2.温度转化
tips:
对输出输入流的合法性检验。以温度转化为例。swtich的运用,解决了一般输入错误时不至于导致程序崩溃出错。而 温度double的定义则解决了一般的溢出性问题。但是对于一些其他有可能使程序出问题的问题还没有做出相应的设计。例如cin函数调用失败的情况。
—eof() :如果到达文件(或输入)末尾,返回ture;
—fail():如果cin无法工作,返回true;
—bad():如果cin因为比较严重的原因(例如内存不够)而无法工作,返回true;
—good():如果以上情况都没发生,返回true。
函数的重载:
#include<iostream>
void convertTempature(double tempin,char typein);
void convertTempature(int tempinint,char typein);
int main()
{
double tempin;
int tempinint;
char typein;
std::cout<<"请以【xx.x C】或【xx.x F】的形式输入温度:";
std::cin>>tempin>>typein;
std::cin.ignore(100,'\n');
std::cout<<"\n";
convertTempature(tempin,typein);
std::cout<<"请输入一个任意字符继续输入\n";
std::cout<<"请以【xx C】或【xx F】的形式输入温度:";
std::cin.get();
std::cin>>tempinint>>typein;
std::cin.ignore(100,'\n');
std::cout<<"\n";
convertTempature(tempinint,typein);
std::cout<<"请输入一个任意字符结束程序\n";
std::cin.get();
return 0;
}
void convertTempature(double tempin,char typein)
{
const unsigned short ADD_SUBTRACT=32;
const double RATIO= 9.0/5.0;
double tempout;
char typeout;
switch(typein)
{
case'C':
case'c':
tempout=tempin*RATIO+ADD_SUBTRACT;
std::cout<<tempin<<" "<<"C"<<"=="<<tempout<<" "<<"F"<<"\n";
break;
case'F':
case'f':
tempout=(tempin-ADD_SUBTRACT)/RATIO;
std::cout<<tempin<<" "<<"F"<<"=="<<tempout<<" "<<"F"<<"\n";
break;
}
}
void convertTempature(int tempinint,char typein)
{
const unsigned short ADD_SUBTRACT=32;
const double RATIO= 9.0/5.0;
int tempout;
char typeout;
switch(typein)
{
case'C':
case'c':
tempout=tempinint*RATIO+ADD_SUBTRACT;
std::cout<<tempinint<<" "<<"C"<<"=="<<tempout<<" "<<"F"<<"\n";
break;
case'F':
case'f':
tempout=(tempinint-ADD_SUBTRACT)/RATIO;
std::cout<<tempinint<<" "<<"F"<<"=="<<tempout<<" "<<"F"<<"\n";
break;
}
}
yan(~ . 。.~)