当前位置: 首页 > news >正文

如何检测网站被搜索引擎惩罚了计算机是学什么内容的

如何检测网站被搜索引擎惩罚了,计算机是学什么内容的,烟台规划网站,平顶山高端网站建设文章目录第六章 分支语句和逻辑运算符6.1 字符函数库cctype6.2 ?:运算符6.3 读取数字的输入6.4 cin的处理过程char类型intdoublechar数组使用char数组来存储输入6.5 写入到文本文件中6.6 读取文本文件6.7 总结第六章 分支语句和逻辑运算符 6.1 字符函数库cctype C从C语言继承… 文章目录第六章 分支语句和逻辑运算符6.1 字符函数库cctype6.2 ?:运算符6.3 读取数字的输入6.4 cin的处理过程char类型intdoublechar数组使用char数组来存储输入6.5 写入到文本文件中6.6 读取文本文件6.7 总结第六章 分支语句和逻辑运算符 6.1 字符函数库cctype C从C语言继承了一个与字符相关的、非常方便的函数软件包它可以简化诸如确定字符是否为大写字母、数字、标点符号等工作这些函数的原型是在头文件cctype老式的风格中为ctype.h中定义的。 例如如果ch是一个字母则isalphach函数返回一个非零值否则返回0。同样如果ch是标点符号如逗号或句号函数ispunctch将返回true。这些函数的返回类型为int而不是bool但通常bool转换让您能够将它们视为bool类型。 使用这些函数比使用AND和OR运算符更方便。例如下面是使用AND和OR来测试字符ch是不是字母字符的代码 if((ch a ch z) || (ch A ch Z))if(isalpha(ch))具体地说它使用isalpha( )来检查字符是否为字母字符使用isdigits( )来测试字符是否为数字字符如3使用isspace( )来测试字符是否为空白如换行符、空格和制表符使用ispunct( )来测试字符是否为标点符号。 函数名称 返回值 isalnum(); 如果参数是字母数字即字母或数字该函数返回true; isalpha(); 如果参数是字母该函数返回true; iscntrl(); 如果参数是控制字符该函数返回true; isdigit(); 如果参数是数字09该函数返回true; isgraph(); 如果参数是除空格之外的打印字符该函数返回true; islower(); 如果参数是小写字母该函数返回true; isprint(); 如果参数是打印字符包括空格该函数返回true; ispunct(); 如果参数是标点符号该函数返回true; isspace(); 如果参数是标准空白字符如空格、进纸、换行符、回车、水平制表符或 者垂直制表符该函数返回true; isupper(); 如果参数是大写字母该函数返回true; isxdigit(); 如果参数是十六进制数字即09、af或AF该函数返回true; tolower(); 如果参数是大写字符则返回其小写否则返回该参数; toupper(); 如果参数是小写字符则返回其大写否则返回该参数; 6.2 ?:运算符 C有一个常被用来代替if else语句的运算符这个运算符被称为条件运算符?:它是C中唯一一个需要3个操作数的运算符。该运算符的通用格式如下 expression1 ? expression2 : expression3如果expression1为true则整个条件表达式的值为expression2的值否则整个表达式的值为expression3的值。 continue跳过循环体剩余的部分开始新一轮循环 break跳过循环的剩余部分到达下一条语句 6.3 读取数字的输入 任务描述 假设要编写一个将一系列数字读入到数组中的程序并允许用户在数组填满之前结束输入。 **应用**假设要编写一个程序来计算平均每天捕获的鱼的重量。这里假设每天最多捕获5条鱼因此一个包含5个元素的数组将足以存储所有的数据但也可能没有捕获这么多鱼。在程序清单6.13中如果数组被填满或者输入了非数字输入循环将结束。 #include iostream #include cstring //#include iso646.h using namespace std; const int Max 5;int main() {double fish[Max];cout Please enter the weight of your fish: endl and you enter up to Max fiashq to terminateendl;cout fish #1:;int i 0;while (i Max cin fish[i]) {if (i Max) {cout fish # i 1 :;}}double total 0.0;for (int j 0; j i; j) {total fish[j];}if (i 0) {cout No fish! endl;} else {cout total / i average weight of i fish\n;}cout Done.\n;return 0; }如果cin位于测试条件中则将被转换为bool类型。如果输入成功则转换后的值为true否则为false。如果表达式的值为false则循环结束l,fish[q]不存在因此输入失败。 在这个例子中当用户输入的不是数字时该程序将不再读取输入。下面来看一个继续读取的例子。 假设程序要求用户提供5个高尔夫得分以计算平均成绩。如果用户输入非数字输入程序将拒绝并要求用户继续输入数字。可以看到可以使用cin输入表达式的值来检测输入是不是数字。程序发现用户输入了错误内容时应采取3个步骤 重置cin以接收新的输出删除错误输入提示用户再输入。 请注意程序必须先重置cin然后才能删除错误输入。 #include iostream #include cstring //#include iso646.husing namespace std; const int Max 5;int main() {int golf[Max];cout Please enter you must enter 5 rounds: endl and you must enter Max rounds endl;int i;for (i 0; i Max; i) {cout round # i 1 :;while (!(cin golf[i])) {cin.clear();while (cin.get() ! \n)continue;cout Please enter a number:;}}double total 0.0;for (i 0; i Max; i ) {total golf[i];}cout total / Max average score Max rounds\n;return 0; }运行结果如下 Please enter you must enter 5 rounds: and you must enter 5rounds round # 1:28 round # 2:34 round # 3:lv Please enter a number:er Please enter a number:23 round # 4:34 round # 5:t Please enter a number:23 28.4 average score 5 rounds-------------------------------- Process exited after 27.28 seconds with return value 0 请按任意键继续. . .如果用户输入88则cin表达式将为true因此将一个值放到数组中而表达式!(cin golf [i])为false因此结束内部循环。然而如果用户输入lv?则cin表达式将为false因此不会将任何值放到数组中而表达式!(cin golf [i])将为true因此进入内部的while循环。该循环的第一条语句使用clear( )方法重置输入如果省略这条语句程序将拒绝继续读取输入。接下来程序在while循环中使用cin.get( )来读取行尾之前的所有输入从而删除这一行中的错误输入。另一种方法是读取到下一个空白字符这样将每次删除一个单词而不是一次删除整行。最后程序告诉用户应输入一个数字。 6.4 cin的处理过程 使用cin进行输入时程序将输入视为一系列的字节其中每个字节都被解释为字符编码。不管目标数据 类型是什么输入一开始都是字符数据——文本数据。然后cin对象负责将文本转换为其他类型。 为说明这是如何完成的来看一些处理同一个输入行的代码。 假设有如下示例输入行 38.5 19.2来看一下使用不同数据类型的变量来存储时cin是如何处理该输入行的。 char类型 char ch; cin ch;输入行中的第一个字符被赋给ch。在这里第一个字符是数字3其字符编码二进制被存储在变量ch中。输入和目标变量都是字符因此不需要进行转换。注意这里存储的数值3而是字符3的编码。执行上述输入语句后输入队列中的下一个字符为字符8如果有下一个输入则下一个输入操作将对其进行处理。 int int n; cin n;在这种情况下cin将不断读取直到遇到非数字字符。也就是说它将读取3和8这样句点将成为输入队列中的下一个字符。cin通过计算发现这两个字符对应数值38因此将38的二进制编码复制到变量n中。 注意 这里有的人认为是进行了强转将一个输入的浮点型数据转换成了这种整型数据这样理解是错误的。 double double x; cin x;在这种情况下cin将不断读取直到遇到第一个不属于浮点数的字符。也就是说cin读取3、8、句点和5使得空格成为输入队列中的下一个字符。cin通过计算发现这四个字符对应于数值38.5因此将38.5的二进制编码浮点格式复制到变量x中。 char数组 char word[50]; cin word;在这种情况下cin将不断读取直到遇到空白字符。也就是说它读取3、8、句点和5使得空格成为输入队列中的下一个字符。然后cin将这4个字符的字符编码存储到数组word中并在末尾加上一个空字符。这里不需要进行任何转换。 使用char数组来存储输入 char word[50]; cin.getline(word,50);在这种情况下cin将不断读取直到遇到换行符示例输入行少于50个字符。所有字符都将被存储到数组word中并在末尾加上一个空字符。换行符被丢弃输入队列中的下一个字符是下一行中的第一个字符。这里不需要进行任何转换。 即整数被转换为数字字符序列浮点数被转换为数字字符和其他字符组成的字符序列如284.53或 −1.58E06。字符数据不需要做任何转换。 6.5 写入到文本文件中 对于文件输入C使用类似于cout的东西。下面来复习一些有关将cout用于控制台输出的基本事实为文件输出做准备。 必须包含头文件iostream。头文件iostream定义了一个用处理输出的ostream类。头文件iostream声明了一个名为cout的ostream变量对象。必须指明名称空间std例如为引用元素cout和endl必须使用编译指令using或前缀std::。可以结合使用cout和运算符来显示各种类型的数据。 文件输出与此极其相似 必须包含头文件fstream。头文件fstream定义了一个用于处理输出的ofstream类。需要声明一个或多个ofstream变量对象并以自己喜欢的方式。对其进行命名条件是遵守常用的命名规则。必须指明名称空间std例如为引用元素ofstream必须使用编译指令using或前缀std::。需要将ofstream对象与文件关联起来。为此方法之一是使用open()方法。使用完文件后应使用方法close( )将其关闭。可结合使用ofstream对象和运算符来输出各种类型的数据。可以使用ifstream对象和get( )方法来读取一个字符使用ifstream对象和getline( )来读取一行字符。可以结合使用ifstream和eof( )、fail( )等方法来判断输入是否成功。ifstream对象本身被用作测试条件时如果最后一个读取操作成功它将被转换为布尔值true否则被转换为false。 注意虽然头文件iostream提供了一个预先定义好的名为cout的ostream对象但您必须声明自己ofstream对象为其命名并将其同文件关联起来。下面演示了如何声明这种对象 ofstream outFile; ofstream fout;下面演示了如何将这种对象与特定的文件关联起来 outFile.open(fish.txt); char filename[50]; cinfilename; fout.open(filename);方法open( )接受一个C-风格字符串作为参数这可以是一个字面字符串也可以是存储在数组中的字符串。 重要的是声明一个ofstream对象并将其同文件关联起来后便可以像使用cout那样使用它。所有可用于cout的操作和方法如、endl和setf( )都可用于ofstream对象如前述示例中的outFile和fout。 总之使用文件输出的主要步骤如下 1包含头文件fstream。 2创建一个ofstream对象。 3将该ofstream对象同一个文件关联起来。 4就像使用cout那样使用该ofstream对象。 下面的程序演示了这种方法。它要求用户输入信息然后将信息显示到屏幕上再将这些信息写入到文件中。读者可以使用文本编辑器来查看该输出文件的内容。 #include iostream #include fstream #include cstringusing namespace std;int main() {char automobile[50];int year;double a_price;double d_price;ofstream outFile;outFile.open(carinfo.txt);//与文本文件建立联系cout Enter the make and model of automobile:;cin.getline(automobile, 50);cout Enter the model year:;cin year;coutEnter the original asking price:;cin a_price;d_price 0.913 * a_price;cout fixed;//以普通方式输出非科学计数法cout.precision(2);//保留两位小数cout.setf(ios_base::showpoint);cout Make and model: automobile endl;cout Year: year endl;cout Was asking $ a_price endl;cout Now asking $ d_price endl;outFile fixed;//以普通方式输出非科学计数法outFile.precision(2);//保留两位小数outFile.setf(ios_base::showpoint);outFile Make and model: automobile endl;outFile Year: year endl;outFile Was asking $ a_price endl;outFile Now asking $ d_price endl;outFile.close();return 0; }注意方法close( )不需要使用文件名作为参数这是因为outFile已经同特定的文件关联起来。如果您忘记关闭文件程序正常终止时将自动关闭它。 outFile.open(carinfo.txt);//与文本文件建立联系在这里该程序运行之前文件carinfo.txt并不存在。在这种情况下方法open( )将新建一个名为carinfo.txt的文件。如果在此运行该程序文件carinfo.txt将存在此时情况将如何呢默认情况下open( )将首先截断该文件即将其长度截短到零——丢其原有的内容然后将新的输出加入到该文件中。 打开已有的文件以接受输出时默认将它其长度截短为零因此原来的内容将丢失。 打开文件用于接受输入时可能失败。例如指定的文件可能已经存在但禁止对其进行访问。因此细心的程序员将检查打开文件的操作是否成功。 6.6 读取文本文件 接下来介绍文本文件输入它是基于控制台输入的。控制台输入涉及多个方面下面首先总结这些方面。 必须包含头文件iostream。头文件iostream定义了一个用处理输入的istream类。头文件iostream声明了一个名为cin的istream变量对象。必须指明名称空间std例如为引用元素cin必须使用编译指令using或前缀std::。可以结合使用cin和运算符来读取各种类型的数据。可以使用cin和get( )方法来读取一个字符使用cin和getline( )来读取一行字符。可以结合使用cin和eof( )、fail( )方法来判断输入是否成功。对象cin本身被用作测试条件时如果最后一个读取操作成功它将被转换为布尔值true否则被转换false。 注意虽然头文件iostream提供了一个预先定义好的名为cin的istream对象但您必须声明自己的ifstream对象为其命名并将其同文件关联起来。下面演示了如何声明这种对象 ifstream inFile; ifstream fin;下面演示了如何将这种对象与特定的文件关联起来 inFile.open(bowling.txt); char filename[50]; cinfilename; fin.open(filename);注意方法open( )接受一个C-风格字符串作为参数这可以是一个字面字符串也可以是存储在数组中的字符串。 下面演示了如何使用这种对象 double wt; inFile wt; char line[81]; fin.getline(line,81);声明一个ifstream对象并将其同文件关联起来后便可以像使用cin那样使用它。所有可用于cin的操作和方法都可用于ifstream对象。 如果试图打开一个不存在的文件用于输入情况将如何呢这种错误将导致后面使用ifstream对象进行输入时失败。检查文件是否被成功打开的首先方法是使用方法is_open( )为此可以使用类似于下面的代码 inFile.open(bowling.txt); if(inFile.isopen){exit(EXIT_FAILURE); }如果文件被成功地打开方法is_open( )将返回true因此如果文件没有被打开表达式!inFile.isopen( )将为true。函数exit( )的原型是在头文件cstdlib中定义的在该头文件中还定义了一个用于同操作系统通信的参数值EXIT_FAILURE。函数exit( )终止程序。 下面的程序打开用户指定的文件读取其中的数字然后指出文件中包含多少个值以及它们的和与平均值。正确地设计输入循环至关重要。 #include iostream #include fstream #include cstdlibusing namespace std; const int SIZE 60;int main() {char filename[SIZE];ifstream inFile;cout Enter name of data file:;cin.getline(filename, SIZE);inFile.open(filename);if (!inFile.is_open()) {cout Could not open the file filename endl;cout Program terminating.\n;exit(EXIT_FAILURE);}double value;double sum 0.0;int count 0;inFile value;while (inFile.good()) {//while input good and not at EOFcount;sum value;inFile value;}if (inFile.eof()) {cout End of file reached. endl;} else if (inFile.fail()) {cout Input terminated by data mismatch. endl;}else{coutInput terminated for unknow reason.endl;}if (count 0) {cout No data processed endl;} else {cout Item read: endl;cout Sum: sum endl;cout Average: sum / count endl;}inFile.close();return 0; }文件“scores.txt文本内容如下 18 19 18 14 14 16 20 20 8 12 29 17输出结果如下 Enter name of data file:scores.txt End of file reached. Item read: Sum:188 Average: 17.0909-------------------------------- Process exited after 7.936 seconds with return value 0 请按任意键继续. . .Windows文本文件的每行都以回车字符和换行符结尾通常情况下C在读取文件时将这两个字符转换为换行符并在写入文件时执行相反的转换。有些文本编辑器如MetrowerksCodeWarrior IDE编辑器不会自动在最后一行末尾加上换行符。因此如果读者使用的是这种编辑器请在输入最后的文本后按下回车键然后再保存文件。 读者需要特别注意的是文件读取循环的正确设计。读取文件时有几点需要检查。首先程序读取文件时不应超过EOF。如果最后一次读取数据时遇到EOF方法eof( )将返回true。其次程序可能遇到类型不匹配的情况。例如程序清单6.16期望文件中只包含数字。如果最后一次读取操作中发生了类型不匹配的情况方法fail( )将返回true如果遇到了EOF该方法也将返回true。最后可能出现意外的问题如文件受损或硬件故障。如果最后一次读取文件时发生了这样的问题方法bad( )将返回true。不要分别检查这些情况一种更简单的方法是使用 good( )方法该方法在没有发生任何错误时返回true while(inFile.good()){... }if (inFile.eof()) {cout End of file reached. endl;} else if (inFile.fail()) {cout Input terminated by data mismatch. endl;}else{coutInput terminated for unknow reason.endl;}这些代码紧跟在循环的后面用于判断循环为何终止。由于eof( )只能判断是否到达EOF而fail( )可用于检查EOF和类型不匹配因此上述代码首先判断是否到达EOF。这样如果执行到了else if测试便可排除EOF因此如果fail( )返回true便可断定导致循环终止的原因是类型不匹配。 方法good( )指出最后一次读取输入的操作是否成功这一点至关重要。这意味着应该在执行读取输入的操作后立刻应用这种测试。为此一种标准方法是在循环之前首次执行循环测试前放置一条输入语句并在循环的末尾下次执行循环测试之前放置另一条输入语句 inFile value; while(inFile.good()){inFilevalue; }鉴于以下事实可以对上述代码进行精简 表达式inFile value的结果为inFile;而在需要一个bool值的情况下inFile的结果为inFile.good( )即true或false。 因此可以将两条输入语句用一条用作循环测试的输入语句代替。也就是说可以将上述循环结构替换为如下循环结构 while(inFilevalue){ //loop body goes here }这种设计仍然遵循了在测试之前进行读取的规则因为要计算表达式inFile value的值程序必须首先试图将一个数字读取到value中。 6.7 总结 使用引导程序选择不同操作的语句后程序和编程将更有趣。C提供了if语句、ifelse语句和switch语句来管理选项。if语句使程序有条件地执行语句或语句块也就是说如果满足特定的条件程序将执行特定的语句或语句块。if else语句程序选择执行两个语句或语句块之一。可以在这条语句后再加上if else以提供一系列的选项。switch语句引导程序执行一系列选项之一。C还提供了帮助决策的运算符。第5章讨论了关系表达式这种表达式对两个值进行比较。if和if else语句通常使用关系表达式作为测试条件。通过使用逻辑运算符、||和!可以组合或修改关系表达式创建更细致的测试。条件运算符?:提供了一种选择两个值之一的简洁方式。cctype字符函数库提供了一组方便的、功能强大的工具可用于分析字符输入。对于文件I/O来说循环和选择语句是很有用的工具文件I/O与控制台I/O极其相似。声明ifstream和ofstream对象并将它们同文件关联起来后便可以像使用cin和cout那样使用这些对象。使用循环和决策语句便可以编写有趣的、智能的、功能强大的程序。
http://www.w-s-a.com/news/60686/

相关文章:

  • 网站安全狗十大免费ppt网站在线
  • 进网站后台显示空白图片模板 网站源码
  • dedecms 英文网站怎么在网站上做模式题库
  • 轻网站怎么建立国外做评论的网站
  • 拉米拉网站建设乐清网站网站建设
  • 获取网站全站代码申请免费域名的方法
  • 网站制作建设公司哪家好wordpress仪表盘打不开
  • 最佳网站制作模板用手机能创建网站吗
  • 只做黑白摄影的网站网站建设好后给领导作介绍
  • 移动手机网站建设如何做网站地图视频
  • 手工业网站怎么做成都酒吧设计公司
  • .net 网站生成安装文件目录重庆网站建设沛宣网络
  • 怎么做钓鱼网站吗百度免费域名注册网站
  • 如何给网站做外部优化今年国内重大新闻
  • 有没有做生物科技相关的网站弄一个app大概多少钱
  • 五金加工东莞网站建设怎么做网页跳转
  • 淄博网站优化价格wordpress没有小工具
  • 自己搭建服务器做视频网站wordpress发布文章 发布
  • php仿博客园网站阅读分享网站模板
  • 网站宣传的劣势域名注册长沙有限公司
  • 怎样联系自己建设网站企业怎样做好网站建设
  • 网站制作需求分析电商网站建设浩森宇特
  • 淄博网站建设招聘摄影网站建设的论文
  • 怎么把凡科网里做的网站保存成文件网站建设研究的意义
  • 服务器2003怎么做网站网站建设服务器的配置
  • 高校网站建设方案网站推广软件下载安装免费
  • 重庆没建网站的企业网站开发软件 连接SQL数据库
  • 百度申诉网站沉默是金
  • 如何自己建网站wordpress图片延时加载
  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013