您好!欢迎来到源码码网

C++ Primer Plus 随记4

  • 行业资讯
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-05-13 16:24
  • 阅读:335

1、strcmp( ):比较两个字符串,相同返回0;第一个字符串按字母顺序排在第二个字母之后将返回负值;


2.类型别名:


#define BYTE char  //使用预处理器,用char替代所有的BYTE,BYTE是char的别名


typedef char byte  //使用关键字typedef ,byte是char的别名。typedef不会创建新类型


3. C++11中基于范围的for循环,对数组(或vector,array)的每个元素执行相同的操作:


double prices[5]= {4.99,5.6,2.13,2.69,7.34};


for (double x : prices)   {cout<<x<<std::end;}


for (double &y : prices)   { y=y*0.8;  } // 要修改数组元素时,循环变量要取地址,改为&y


4、cin() 忽略空格和换行符,cin.get()中包含空格、制表符、换行符。


  cin.get(name,size).get();


5、检测文件尾(EOF) :检测到EOF,cin.eof() 或cin.fail() 将返回bool值true,否则返回bool值 false; 


6.字符输入做法:


char ch; cin.get(ch);  while (cin.fail()==false) { ....  cin.get(ch); }  //或者while (!cin.fail()) 或while (cin) 


char ch;  while (cin.get(ch))  { ... }


int ch; ch=cin.get();  while ( ch!=EOF )  { ...  ch=cin.get(); } 


int ch;   while((ch = cin.get() ) != EOF) {     } 




更常用,拼接字符串:cin.get(ch1).get(ch2);


7.逻辑运算符||  逻辑运算符&&


!的优先级大于逻辑运算符和关系运算符(> < =), &&优先级大于|| ,关系运算符优先级大于 &&,||


8.定义二维字符串数组方式:


(1)char指针数组: char * cities[3]={"Beijing", "TianJin", "ShangHai"};


(2)char数组的数组 char  cities[3][10]={"Beijing", "TianJin", "ShangHai"};


(3)string对象数组 string  cities[3]={"Beijing", "TianJin", "ShangHai"};


希望字符串可以修改的情况下,string类可以自动调节大小更方便。


9.switch语句,while语句中,将int值与枚举量标签进行比较时,枚举量将提升为int。


switch语句中每一个case的标签必须是int或char,还必须是常量


10.continue :跳出循环剩余部分,执行新的一轮循环


     break :跳出循环剩余部分,不在执行循环语句


switch一般与break组合使用


int chice[3]={0,1,2};


switch (choice){case 0: ... break;  case 1: ... break; case 2: ... break;  }


11.int n[6];  for(i=0;i<6;i++){


 cout<<"round "<<i+1<<" : ";


while(!(cin>>n[i])){   //当输入不是字符时,执行下面循环


cin.clear(); // 如果输入的是字符,不是数字时,应利用cin.clear() 重置cin以接受新的输入。


while (cin.get() != ' ')   continue;  //while中用cin.get() 读取行尾之前的输入,从而删除这行错误输入


cout<<"Pleae enter a number:  ";


}  }


12.写入文本文件文件输出:必须包含头文件 #include<fstream>,需要声明一个或多个ofstream对象,将ofstream对象与文件关联用open()方法。使用完文件用close()关闭。可以使用ofstream对象和运算符<<来输出各种类型的数据。(和cout类似)


   


#include "stdafx.h"

#include<iostream>

#include<fstream>

 

int _tmain()

using namespace std;

char automobile[50];

int year;

double a_price,d_price;

 

ofstream outfile; //创建一个输出的ofstream对象,可以像使用cout一样使用outfile

outfile.open("carinfo.txt"); //关联的文件,创建一个名为carinfo.txt的文件

cout << "Enter the make and model of automobile: ";

cin.getline(automobile, 50);

cout << "Enter the model year: ";

cin >> year;

cout << "Enter the original asking price: ";

cin >> a_price;

d_price = 0.913*a_price;

cout << fixed;

cout.precision(2);  //设置显示精确度为2位并返回上一次的设置。

cout.setf(ios_base::showpoint); //显示浮点数小数点后的0;

cout << "Make and Model: " << automobile << endl;

cout << "Year: " << year << endl;

cout << "Was asking $" << a_price << endl;

cout << "Now asking $" << d_price << endl;

 

outfile << fixed;  //可以像使用cout一样使用outfile

outfile.precision(4);  ////设置输出精确度为4位并返回上一次的设置。

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;

}

13.读取文本文件:必须包含头文件 #include<fstream>,需要声明一个或多个ifstream对象,将ifstream对象与文件关联用open()方法。使用完文件用close()关闭。可以使用ifstream对象和运算符>>来读取各种类型的数据。


可以使用ifstream对象和get()方法来读取一个字符。使用ifstream对象和getline()方法来读取一行字符。


使用ifstream对象和eof() 、fail()等方法来判断输入是否成功


ifstream对象本身作为测试条件时,如果最后一个读取操作成功,它将会被转化为bool值true.(和cin类似)


检查文件是否被成功打开用方法is_open();


#include "stdafx.h"

#include<iostream>

#include<fstream>

#include<cstdlib> //支持exit()

const int SIZE = 60;

 

int _tmain()

using namespace std;

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" << endl;

cout << "Program terminating. ";

exit(EXIT_FAILURE);

}

double value;

double sum = 0.0;

int count = 0;

infile >> value; //在循环外读取第一个值

while (infile.good()) //读取输入操作成功且未到达EOF

{

++count;

sum += value;

infile >> value;  //读取下一个值

}

if (infile.eof()) //判读是否达到EOF

cout << "End of file read. ";

else if (infile.fail()) //可以检测EOF或类型不匹配

cout << "Input terminated by data mismatch. ";

else

cout << "Input terminated by unkonwn reason. ";

if (count == 0)

cout << "No data processed. ";

else

{

cout << "Item read: " << count << endl;

cout << "Sum: " << sum << endl;

cout << "Average: " << sum / count << endl;

}

infile.close();

return 0;

}

infile >> value; //在循环外需进行一次读取

    while (infile.good()) //

    {  .......

          infile >> value;  //读取下一个值

    } 


以上这一部分等效于


while (infile>>value)  //读取并测试是否成功


{ ...... } 

————————————————


原文链接:https://blog.csdn.net/lvliang2017232003/java/article/details/85645040


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:165
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:148
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:63
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:90
  • 中医考证在线学习小程序系统需求文档
  • 中医考证在线学习小程序系统需求文档
  • 中医考证在线学习小程序系统需求文档文档版本: V1.0目标用户: 中医执业医师、助理医师、确有专长、师承等考证学员核心价值: 利用移动化、碎片化、智能化工具,提升学习效率与考试通过率。1.项目概述1.1项目目标开发一款专为中医考证学员设计的微信小程序,提供从课程学习、题库练习、考点记忆、模考冲刺到学习社区的一站式闭环学习体验。旨在帮助学员充分利用碎片时间,系统化、高效地备考。1.2用户角色学员(主要用
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:53
  • 阅读:26
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部