第2章 基本编程语句

 

第2章 基本编程语句

1.声明与定义:

(1)声明语句只声明名称,未分配存储空间。定义则为名称分配空间。可以声明多次,但只能定义一次。

(2)int a = 3; //有初始化的定义

int a; a = 3;//定义后赋值,与上面效果相同。

2.if语句条件中定义的变量只能在整个if语句范围内使用

ifint a = b) cout << a << endl;  //b赋给a,若b不为 则输出a

a ++; //编译出错:a无定义,a只在if语句范围内使用

3.条件表达式:(xa:b) = 32;之中ab必须为相同的数据类型。如不同则只能用if语句:if(x) a = 32;else b = 32;

4.1Switch括号中的表达式只能对整型、字符型或枚举型即整数或整数的子集进行测试,不能测试范围或浮点值。

  (2)每个case常量表达式的值必须互不相同:case 'A':a++;case 65:a++;//编译出错,因为Aascii码为65

  (3case语句只起语句标号作用,casedefault并不改变控制流程,与break联用才能保证多路分支的正确实现。

  (4Case语句顺序可任意。

  (5Switch语句可嵌套即case中还可以包含switch语句。

5.循环:

 (1for循环将循环变量和初始化放在循环外部去描述,可以使循环变量在循环结束后仍然存在。

int n = 1;

for(;n*n - 6*n - 13 <= 0;++n);

cout << n << endl;

 (2While循环式for循环的特例:for(;i < 100; => while(i < 100)

 (3)有些循环不能确定循环次数,此时可以利用while循环表示成一种无条件判断的无限循环形式。egint n = 1; 

While(1) //也可作:for(;;)

if(n*n -6*n-13>0) break; else ++n; cout << n <<endl;

  (4)continue结束本次循环,break终止整个循环。

  (5)Goto语句可以方便的跳出深循环,使用try/catch捕获异常也可以。

  (6)For循环比while好的地方在于循环条件者中的局部变量可以不必公开化,而且for循环体简单易读。

6.流状态

cout << showpos << 12 <<endl;  //showpos:0和正数前显示+

cout << hex << 18 << " " << showbase << 18 <<endl; //hex十六进制显示整数,showbase:十六制前加OX,八进制前加:O

cout << oct << 9 <<endl;//oct:八进制显示整数,dec:十进制显示整数

cout << hex << 255 << " " << uppercase << 255 <<endl;//uppercase:十六进制格式字母用大写字母表示(默认为小写)

cout << 123.0 << " " << showpoint << 123.0 <<endl;//showpoint:浮点数输出即使小数点后为0也输出小数点

cout << (2 > 3) << " " <<boolalpha<<(2<3)<<endl; //boolalpha:逻辑值1/0,用ture/false表示

cout << fixed << 12345.678 <<endl;//fixed:定点数格式输出

cout << scientific << 12345.678 <<endl;//scientific:科学记数法输出

cout.unsetf(ios::scientific);//cout捆绑函数调用来取消显示格式

cout.unsetf(ios::showpos);

cout << 12345.678 <<endl;

cout << showpos << 12345.678 <<endl;

cout << noshowpos << 12345.678 <<endl;//取消流状态:noshowpos,noshowbase,nouppercase,noshowpoint,noboolalpha

cout.unsetf(ios::hex);

cout.width(5);//设置显示宽度

cout.fill('*');//设置填充字符

cout << 123 << 23 <<endl;//width(n)为一次性操作

cout.width(5);

cout.fill('$');

cout << left << 23 << endl;//left:左对齐,填充字符在右边,默认在左边

cout.precision(7); //precision:设置有效位数(总位数,普通显示方式)或精度(小数点后的位数,定点或科学记数法)

cout << 1234.5 <<endl;

cout << fixed << 1234.5 <<endl;

cout << scientific << 1234.5 <<endl;

cout.unsetf(ios::scientific);

cout.precision(6); //默认输出有效位数为6

cout << 1234.5 <<endl;

cout << right << setw(5) <<setfill('*') << 23 <<endl;//setw(int),设置宽度,setfill(char):设置填充字符

cout << setprecision(7) <<1234.5 <<endl;

cout.precision(6);

cout << 1234.5 <<endl;

7.用输入输出文件流打开文件:

ifstream fin(filename,openmode = ios::in);

ofstream fout(filename,openmode = ios::out);

Ifstream,ofstream 是类型名,表示输入输出文件流,finfout是文件流的名称,filename是打开的外部文件名,openmode 是打开方式,ifstream默认打开方式为ios::in,ofstream默认打开方式为ios::out,故在打开已经存在的输入文件新建一 个输出文件时可以省略这个参数。

输入输出操作大多能返回操作状态(true/false),故常将读入操作放在循环的条件判断上。

#include<sstream>

#include<fstream>

using namespace std;

//--------------------------------

int main()

{

ifstream in("a.txt");

ofstream out("b.txt");

for(string str;getline(in,str);)

out<<str<< endl;

return 0;

}

Getlinein,str)从输入流in中整行读入到str中,文件中的换行符被丢掉了,在out上输出str时要补上一个回车。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值