【C++ Premer】第六章(分支语句和逻辑操作符)
3397 点击·0 回帖
![]() | ![]() | |
![]() | 1,cin的用法 char ch; cin.get(ch); //仅仅接受一个字符(输入12,则ch仅仅赋值为1) cout<<ch; 2,对于字符型变量ch,++ch与ch+1的区别 [html] <span style="font-size:18px;"><strong>int main() { char ch; cin.get(ch); while(ch!='.') { if(ch=='\n') cout<<ch; else cout<<ch+1; cin.get(ch); } }</strong></span> cout<<++ch;输出的是 相应ASCCI码加一之后的 字符 cout<<ch+1;输出的是 相应ASCCI码加一之后的 ASCCI码 3,if条件判断句的巧妙写法 if(i==0)写法时候,往往因为忘记一个“=”而令代码出现难以查证的逻辑错误。 if(0==i)写法,当忘记一个"="的时候,代码编译时候会报错,所以极易查找错误来源。 4,逻辑表达式(||、;;、!) 逻辑表达式的优先级比关系表达式低,先修改左侧的值然后对右侧的值进行判定。如:i++<6||i==j 测试一个变量的范围的写法:if(age>15;;age<35) 错误写法:if(15<age<35) 分析:15<age为true时,表达式值为1 1<35恒成立 15<age为false时,表达式值为0 0<35恒成立 5,字符函数库 cctype(头文件 cctype.h) 判断是否为字母字符:if(isalpha(ch)) if((ch>='a';;ch<='z')||(ch>='A';;ch<='Z')) isalnum()//判断是否为字母数组 isblank()//判断是否为空格活水平制表符 isdigit()//判断是否为数字 6,? :操作符 int i=5>3?1:0;//给i赋值为1 7,break和continue语句 break语句的执行表示:跳出循环体,执行循环体以外的下一条语句。 countinue语句的执行表示:跳过本次循环,但不会跳过循环更新表达式 8,读取数字的循环 cin>>i;用来接收用户的输入。当用户发现输入错误时候应采取三个步骤 1)重置cin 以接受新的输入 2)删除错误输入cin.clear(); 3)提示用户再输入 例: cout<<请输入年龄<<endl; int age; while(!(cin>>age)) { cin.clear(); cout<<请再次输入<<endl; } 9,简单文件输入/输出 文本I/O:使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据类型是什么,输入一开始都是字符数据-文本数据。然后,cin对象负责将文本转换为其他类型。 38.5 19.2 char ch; cin>>ch;//第一个字符3 被赋值给ch,字符编码(二进制)被存储在变量ch中。输入和目标都是字符,不需要转换。 int n; cin>>n;//cin不断读取,直到遇到非数字字符。读取38,因此将38的二进制编码复制到变量n中。 double x; cin>>x;//cin不断读取,直到遇到第一个不属于浮点数的字符。读取38.5 char word[50]; cin>>word;//cin不断读取,直到遇到空白字符。读取38.5,然后将38.5字符编码存储到数组word中,并在末尾加上一个空字符。 cin.getline(word,50);//cin不断读取,直到遇到换行符。读取38.5 19.2 10,使用文件输出的步骤 1)包含头文件fstream 2)创建一个ofstream 3)将该ofstream对象仝一个文件关联起来。 4)就像使用cout一样使用ofstream | |
![]() | ![]() |