标签:
语法:
if (test-condition)
statement
if (test-condition)
statement1
else
statement2
if (test-condition1)
statement1
else if (test-condition2)
statement2
else
statement3
当两个条件中有一个或全部满足某个要求时,为真。
C++规定,||运算符是个顺序点(逗号和冒号也是),因此不需要在这些表达式中使用括号。
将两个表达式合成一个表达式,仅当原来的两个表达式都为true时,才为true。
将后面表达式的值取反。
在&&中,若第一个表达式为false,则结果为false,程序不会再去判断第二个表达式的值。
在||中,若第一个表达式的值为true,则结果为true,程序不会再去判断第二个表达式的值。
C++从C语言继承了一个非常强大的函数软件包。可确定字符是否为大写字母、数字、标点符号等等。
这些函数的返回值为为int型。
如下表:
函数名称 |
返回值 |
isalnum() |
是字母或数字,true |
isalpha() |
是字母,true |
iscntrl() |
是控制字符,true |
isdigit() |
是数字(0-9),true |
isgraph() |
是除空格之外的打印字符,true |
islower() |
是小写字母,true |
isprint() |
是打印字符(含空格),true |
ispunct() |
是标点符号,true |
isspace() |
是标准空白字符(空格、进纸、换行、回车、水平/垂直制表符),true |
isupper() |
是大写字母,true |
isxdigit() |
是十六进制(0-9,a-f,A-F),true |
tolower() |
是大写字母,返回小写 |
toupper() |
是小写字母,返回大写 |
C++中有一个常被用来替代if else语句的运算符,也是C++中唯一一个三个操作数的运算符(三目运算符)。如下:
expression1? expression2: expression3
expression1为true,取expression2,否则取expression3。
switch (integer-expression)
{
case label:statements (s)
case labe2:statements (s)
……….
case laben:statements (s)
default : statements(s)
}
switch就像指路牌,告诉计算机接下来该执行哪一些代码。执行到swtich时,程序将跳到integer-expression的那一行。integer-expression必须是一个整数型的表达式,标签也必须是一个整数表达式。最常见的是int、char和枚举类型。若成程序不与任何表达式匹配,则执行default,default是可选的。
注意,在C++中,case标签仅是标签,程序跳到相应的标签后将依次执行后面所有的语句,除非有明确的指示。
cin通常无法识别枚举量(不知道程序员如何定义它们),在int型和枚举量进行比较时,将枚举量自动提升为int型。在while循环测试条件中也是如此。
break用于任何循环或者switch语句中,跳到循环或者switch语句后面执行,即跳出循环或者switch语句。
continue语句用于循环中,可让程序跳过循环体中余下的代码,并开始行一轮的循环。
continue语句使程序直接跳到循环的更新表达式。
在将一系列数字输入到数组中的程序,如:
int n;cin>>n;
如果输入非数字时,将发生4种情况:
可使用cin输入表达式的值来检测输入的是否为数字。程序如果发现用户输入错误内容时,应采取3个步骤:
示例(核心代码):
while(!(cin>>golf[i]))
{
cin.clear();
while(cin.get()!=‘\n‘) //读取此行结尾之前所有的字符,达到删除的效果
{
continue;
cout<<"Please enter a number:";
}
}
C++将读取键盘输入和在屏幕上输出(统称为控制台输入/输出)的技巧用于文件输入/输出(文件I/O)非常简单。
文本I/O:使用cin进行输入时,程序将输入视为一系列的字节,每个字节均被解释为字符编码。不管目标数据类型是什么,输入一开始都是字符数据:文本数据。然后,cin对象负责将这些文本转化为其他类型。
现举例说明:
示例输入:38.5 19.2
char类型:
char ch;cin>>ch;
输入行的第一个字符给ch,系统将3的字符编码(二进制)存储在变量ch中。
int类型:
int n;cin>>n;
程序将不断读取,知道遇到非数字字符。此处为38。cin通过计算得到38的字符编码并存入变量n中。
double型:
double x;cin>>x;
不断读取(数字、一个句点)直到不属于浮点数的字符。
char数组型:
char word[20];cin>>word;
cin不断读取,直到遇到空白字符。
本章讨论的文件I/O相当于控制台I/O,因此仅适用于文本文件。
cout用于控制台输出的基本事实:
文件输出与此相类似:
声明/定义ofstream对象并与特定的文件关联。
ofstream outfile;
outfile.open("f.txt");
char name[20];
cin>>name;
outfile.open(name);
使用对象:
double wt=10.1;
outfile<<wt;
char c[20]="Hello World!";
outfile<<c;
文件的关闭:outfile.close();
总结,文件输出的步骤:
方法close()不需要文件名作为参数。
outfile可使用cout的各种方法,运算符<<除外。
若使用open()方法打开的文件不存在,则会新建一个。默认情况下,程序会截断该文件,如果文件中有内容,则会被清空。
文本输入是基于控制台输入的,控制台输入涉及多个方面,以下为总结:
文件输入与此极其类似:
必须声明自己的ifstream对象并为其命名,并和文件关联起来。
例:
ifstream fin;
fin.open("a.txt");
char name[20];
cin>>name;
fin.open(name);
声明了一个ifstream对象并将其同文件关联起来后,就可是像cin那样使用它。
如果打开一个不存在的文件用于输入,将产生错误。可使用is_open()方法打开。可使用以下代码检查:
fin.open("a.txt");
if (!fin>is_open())
{
exit(EXIT_FAILURE);
}
函数exit()的原型在头文件cstdlib中定义。EXIT_FAILURE为一个定义的用于和操作系统进行通信的参数,函数exit()终止程序。
如果老的编译系统没有is_open(),可使用good()进行判断。
程序必须能够找到该文件。通常,除非在输入的文件名中包含路径,否则程序在可执行文件的文件夹中查找。
注意,eof()能够判断能否到达文件尾,fail()如果遇到数据类型不匹配的话,返回false。
标签:
原文地址:http://www.cnblogs.com/xyb930826/p/5267015.html