第十篇 -- 学习C++宝典2005版
最近看了C++宝典,看时间是2005的,对于里面的程序自己也进行了编写,由于时间过久,可能有些函数的用法发生了改变,自己也对其进行了修改,用VS2017可以编译通过。
前四章学习内容
CPlusPlusStudy.h
#pragma once
/*********************Function prototype************************/ ///////////////////////// Caption 1 & 2 //////////////////////////
//variable
void Variable_study();
void Bool_study();
void Char_study();
void Wchar_t_study();
void Int_study();
void Float_study();
void Variable_initial(); //constant
void Constant_study(); //operator
void Operator_study(); void Assign_study();
void assign_common_study();
void assign_expression_study();
void MoreVariable_assign();
void Complex_assign(); void DecrementAndIncreament_study(); void Conditional_study(); void Comma_study(); //standard input and output
void Cin_Cout_study();
void Common_cin_cout_study();
void Format_cin_cout_study(); ///////////////////////// Caption 3 & 4 //////////////////////////
//function overload
void Overload_function();
void Overload_copy();
void string_copy(char *dest, const char *src);
void string_copy(char *dest, const char *src, int len);
void Overload_format();
void display_time(const struct std::tm tim);
void display_time(time_t *tim); //goto jumper
void Goto_study();
CPlusPlusStudy.cpp
/*********************************************************/
/******************** Author: zihan **********************/
/******************** Date: 2019/7/11 ********************/
/******************** Version: 0.0.0.1 *******************/
/******************** Destination: For C++ study *********/
/******************** FileName: CPlusPlusStudy.cpp *******/
/*********************************************************/ #include "pch.h"
#include <iostream>
#include "CPlusPlusStudy.h" #include <time.h> #include <Windows.h>
/////////////////////////////////////////////////////////////////
// The main() function //
/////////////////////////////////////////////////////////////////
int main()
{
std::cout << "\nThis is main() function\n"; //Caption 1 & 2
//Variable_study();
//Constant_study();
//Operator_study();
//Cin_Cout_study(); //Caption 3 & 4
//Overload_function();
Goto_study(); std::cout << "\n===================main() end===================\n";
return 0;
} /////////////////////////////////////////////////////////////////
// Caption 1 & 2 //
///////////////////////////////////////////////////////////////// /******************************* variable **************************************/
//variable
void Variable_study() {
std::cout << "\nThis is Variable_study() function\n"; //Bool_study();
//Char_study();
//Wchar_t_study();
//Int_study();
//Float_study();
Variable_initial(); std::cout << "\n===================Variable_study() end===================\n";
} //bool variable
void Bool_study() {
std::cout << "\nThis is Bool_study() function\n"; bool senior; //bool variable
senior = true; //set to true //Test the senior variable
if (senior)
std::cout << "variable senior's value is true\n";
else {
std::cout << "\aError";//"\a" make computer product voice.
system("pause");
} std::cout << "\n===================Bool_study() end===================\n";
} //char variable
void Char_study() {
std::cout << "\nThis is Char_study() function\n"; char c; //char variable
c = 'b'; //assign 'b'
std::cout << c; //display 'b'
c = 'y'; //assign 'y'
std::cout << c; //dispaly 'y'
c = 'e'; //assign 'e'
std::cout << c; //display 'e' std::cout << "\n===================Char_study() end===================\n";
} //wchar_t variable
void Wchar_t_study() {
std::cout << "\nThis is Wchar_t_study() function\n"; wchar_t wc; //wide char variable
wc = 'b'; //assign 'b' to wc
std::wcout << wc; //display 'b'
wc = 'y'; //assgin 'y' to wc
std::wcout << wc; //display 'y'
wc = 'e'; //assign 'e' to wc std::cout << "\n===================Wchar_t_study() end===================\n";
} //int variable
void Int_study() {
std::cout << "\nThis is Int_study() function\n"; int Amount; //an int variable
Amount = 123; //assign a value
std::cout << Amount; //display the int std::cout << "\n===================Int_study() end===================\n";
} //float variable
void Float_study() {
std::cout << "\nThis is Float_study() function\n"; float realValue; //a float variable
realValue = 1.2; //assign a value //warning C4305: '=': truncation from 'double' to 'float'
std::cout << realValue; //display the float std::cout << "\n===================Float_study() end===================\n";
} //initial variable
void Variable_initial() {
std::cout << "\nThis is Variable_initial() function\n"; ////initialize variable support C++ & C
//int Amount = 3; //initialize an int
//char ch = 'A'; //initialize a char
//float Value = 1.23; //initialize a float ////Display the initialized variables
//std::cout << Amount;
//std::cout << ' ';
//std::cout << ch;
//std::cout << ' ';
//std::cout << Value; //initialize variable only support C++
int Amount(3); //initialize an int
char ch('A'); //initialize a char
float Value(1.23); //initialize a float //Display the initialized variables
std::cout << Amount;
std::cout << ' ';
std::cout << ch;
std::cout << ' ';
std::cout << Value; std::cout << "\n===================Variable_initial() end===================\n";
} /********************************* constant **************************************/
//constant
void Constant_study() {
std::cout << "\nThis is Constant_study() function\n"; std::cout <<
"This is the beginning of a very long message \n"
"that spans severral lines of code. \n"
"This format allows a program to build long \n"
"string constants without going past the \n"
"program editor's right margin. \n"; std::cout << "\n===================Constant_study() end===================\n";
} /************************************** operator *********************************/
//operator
void Operator_study() {
std::cout << "\nThis is Operator_study() function\n"; //Assign_study();
//DecrementAndIncreament_study();
//Conditional_study();
Comma_study(); std::cout << "\n===================Operator_study() end===================\n";
} /////////////////assignment statement operator
void Assign_study() {
std::cout << "\nThis is Assign_study() function\n"; //assign_common_study();
//assign_expression_study();
//MoreVariable_assign();
Complex_assign(); std::cout << "\n===================Assign_study() end===================\n";
} //common_assign
void assign_common_study() {
std::cout << "\nThis is assign_common_study() function\n"; //Declare three integers
int HourlyRate;
int HoursWorked;
int GrossPay; //Assign values to the integers
HourlyRate = 15;
HoursWorked = 40;
GrossPay = HourlyRate * HoursWorked; //Display the variables on the screen.
std::cout << HourlyRate;
std::cout << ' ';
std::cout << HoursWorked;
std::cout << ' ';
std::cout << GrossPay; std::cout << "\n===================assign_common_study() end===================\n";
} //expression_assign
void assign_expression_study() {
std::cout << "\nThis is assign_expression_study() function\n"; int Celsius, Fahrenheit; //Prompt for Fahrenheit temperature
std::cout << "\nEnter temperature as degrees Fahrenheit: "; //Read Fahrenheit tempersture from keyboard
std::cin >> Fahrenheit; //Compute Celsius
Celsius = 5 * (Fahrenheit - 32) / 9; //Display the result
std::cout << "Temperature is ";
std::cout << Celsius;
std::cout << " degrees Celsius"; std::cout << "\n===================assign_expression_study() end===================\n";
} //continuity_assgin
void MoreVariable_assign() {
std::cout << "\nThis is MoreVariable_assign() function\n"; unsigned int This, That, Those; //Assign the same value to three variables
This = That = Those = 66000; //Dispaly three ubsigned ints
std::cout << This;
std::cout << ' ';
std::cout << That;
std::cout << ' ';
std::cout << Those; std::cout << "\n===================MoreVariable_assign() end===================\n";
} //complex_assign
void Complex_assign() {
std::cout << "\nThis is Complex_assign() function\n"; long Total, SubTotal, Detail; //Initial values
Total = 10000;
SubTotal = 90;
Detail = 5;
SubTotal *= Detail; //compute SubTotal
Total += SubTotal; //compute Total //Dispaly all three
std::cout << Total;
std::cout << ' ';
std::cout << SubTotal;
std::cout << ' ';
std::cout << Detail; std::cout << "\n===================Complex_assign() end===================\n";
} //////////////////decrement and increment
void DecrementAndIncreament_study() {
std::cout << "\nThis is DecrementAndIncreament_study() function\n"; int Ctr, OldCtr, NewCtr; //Make the assignments
OldCtr = 123; //OldCtr is 123
NewCtr = ++OldCtr; //NewCtr is 124, OldCtr is 124
Ctr = NewCtr--; //Ctr is 124, NewCtr is 123 //Display the results
std::cout << OldCtr;
std::cout << ' ';
std::cout << NewCtr;
std::cout << ' ';
std::cout << Ctr; std::cout << "\n===================DecrementAndIncreament_study() end===================\n";
} //////////////////conditional operator
void Conditional_study() {
std::cout << "\nThis is Conditional_study() function\n"; float Dues; //dues amount //Read the dues
std::cout << "Enter dues amount: ";
std::cin >> Dues; //Are the dues paid on time?
std::cout << "On time?(y/n)";
char yn;
std::cin >> yn;
bool Overdue; //true if overdue, false if on time
Overdue = yn != 'y';
float AmountDue; //amount to be computed //Use conditional operator to compute
AmountDue = Overdue ? Dues * 1.10 : Dues; //Display the dues amount
std::cout << "Amount due: ";
std::cout << AmountDue; std::cout << "\n===================Conditional_study() end===================\n";
} //////////////////comma operator
void Comma_study() {
std::cout << "\nThis is Comma_study() function\n"; int Val, Amt, Tot, Cnt;
Amt = 30;
Tot = 12;
Cnt = 46; //Compute Val = rightmost expression
//Val = (Amt++, --Tot, Cnt + 3); //Compute Val = leftmost expression
Val = Amt++, --Tot, Cnt + 3; //Display the result
std::cout << Val; std::cout << "\n===================Comma_study() end===================\n";
} /************************************** standard input & output *********************************/
//cin and cout
void Cin_Cout_study() {
std::cout << "\nThis is Cin_Cout_study() function\n"; //Common_cin_cout_study();
Format_cin_cout_study(); std::cout << "\n===================Cin_Cout_study() end===================\n";
} //common usage
void Common_cin_cout_study() {
std::cout << "\nThis is common_cin_cout_study() function\n"; int Amount = 3; //initialize an int
char ch = 'A'; //initialize a char
float Value = 1.23; //initialize a float //Display the initialized variables
std::cout << Amount << ' ' << ch << ' ' << Value << std::endl; std::cout << "\n===================common_cin_cout_study() end===================\n";
} //format cin and cout
void Format_cin_cout_study() {
std::cout << "\nThis is Format_cin_cout_study() function\n"; int amount = 123; std::cout << std::dec << amount << ' '
<< std::oct << amount << ' '
<< std::hex << amount; std::cout << "\n===================Format_cin_cout_study() end===================\n";
} /************************************** Function overload *********************************/
//function overload
void Overload_function() {
std::cout << "\nThis is Overload_function() function\n"; //Overload_copy();
Overload_format(); std::cout << "\n===================Overload_function() end===================\n";
} //copy overload
void Overload_copy() {
std::cout << "\nThis is Overload_copy() function\n"; char misspiggy[20], kerrnit[20];
string_copy(misspiggy, "Miss Piggy");
string_copy(kerrnit,"Kerrnit, the file transfer protocol", 30); std::cout << kerrnit << " and " << misspiggy;
//std::cout << kerrnit; std::cout << "\n===================Overload_copy() end===================\n";
} //The first version of string_copy
void string_copy(char *dest, const char *src) {
std::cout << "\nThis is string_copy2 function\n"; while ((*dest++ = *src++) != '\0')
; std::cout << "\n===================string_copy2 end===================\n";
} //The sencond version of string_copy
void string_copy(char *dest, const char *src, int len) {
std::cout << "\nThis is string_copy3 function\n"; //char buffer[100];
//int bufsize = sizeof(buffer) / sizeof(buffer[0]);
//std::cout << bufsize; while (len-- >= 20)
;
len++;
while (len && (*dest++ = *src++) != '\0')
--len;
if (len == 0)
*dest++ = '\0'; std::cout << "\n===================string_copy3 end===================\n";
} //format overload
void Overload_format() {
std::cout << "\nThis is Overload_format() function\n"; time_t tim;
time(&tim);
struct tm t;
localtime_s(&t, &tim);
display_time(t);
display_time(&tim); std::cout << "\n===================Overload_format() end===================\n";
} //The first version of display_time()
void display_time(const struct tm tim){
std::cout << "\nThis is display_time1 function\n"; char stTmp[32];
asctime_s(stTmp, &tim);
std::cout << "1. It is now " << stTmp; std::cout << "\n===================display_time1 end===================\n";
} //The second version of display_time()
void display_time(time_t *tim) {
std::cout << "\nThis is display_time2 function\n"; char stTmp[32];
ctime_s(stTmp, 32, tim);
std::cout << "2. It is now " << stTmp; std::cout << "\n===================display_time2 end===================\n";
} /************************************** goto jumper *********************************/
//goto test
void Goto_study() {
std::cout << "\nThis is Goto_study() function\n"; for (int dept = 1; dept < 10; dept++) {
std::cout << "Department " << dept << std::endl;
int empl; do {
std::cout << "Enter Empl # "
"(0 to quit, 99 for next dept)";
std::cin >> empl; if (empl == 0)
goto done;
if (empl != 99) {
std::cout << "Dept: " << dept << ", "
<< "Empl: " << empl << std::endl;
}
} while (empl != 99); done:
std::cout << "Entry complete" << std::endl;
} std::cout << "\n===================Goto_study() end===================\n";
} /******************************* key words **************************************/
//C++ key words
//asm do inline short typeid
//auto double int signed typename
//bool dynamic_cast long sizeof union
//break else mutable static unsigned
//case enum namespace static_cast using
//catch explicit new struct virtual
//char extern operator weitch void
//class false private template volatile
//const float protected this wchar_t
//const_cast for public throw while
//continue friend register true
//default goto reinterpret_cast try
//delete if return typedef //C++ international key words
//and bitor or xor_e
//and_eq compl or_eq not_eq
//bitand not xor
希望可以看得清楚明白。有好的学习方法也会学习。
第十篇 -- 学习C++宝典2005版的更多相关文章
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
- Egret入门学习日记 --- 第二十篇(书中 9.1~9.3 节 内容 组件篇)
第二十篇(书中 9.1~9.3 节 内容 组件篇) 第八章中的内容. 以上都是基本的Js知识,我就不录入了. 直接来看 第9章. 开始 9.1节. 以上内容告诉你,Egret官方舍弃了GUI,使用了E ...
- Egret入门学习日记 --- 第十篇(书中 2.9~2.13节 内容)
第十篇(书中 2.9~2.13节 内容) 好的 2.9节 开始! 总结一下重点: 1.之前通过 ImageLoader 类加载图片的方式,改成了 RES.getResByUrl 的方式. 跟着做: 重 ...
- 第十篇 SQL Server安全行级安全
本篇文章是SQL Server安全系列的第十篇,详细内容请参考原文. 不像一些其他industrial-strength数据库服务,SQL Server缺乏一个内置保护个别数据记录的机制,称为行级安全 ...
- 《Java程序设计》第十周学习总结
20145224 <Java程序设计>第十周学习总结 网络编程 ·网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的 ...
- 20155324 2016-2017-2 《Java程序设计》第十周学习总结
20155324 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. ...
- 【译】第十篇 SQL Server安全行级安全
本篇文章是SQL Server安全系列的第十篇,详细内容请参考原文. 不像一些其他industrial-strength数据库服务,SQL Server缺乏一个内置保护个别数据记录的机制,称为行级安全 ...
- 20172306《Java程序设计与数据结构》第十周学习总结
20172306<Java程序设计>第十周学习总结 教材学习内容总结 本章主要的讲的是集合有关的知识: 1.集合与数据结构 - 集合是一种对象,集合表示一个专用于保存元素的对象,并该对象还 ...
- 20155326 2016-2017-2 《Java程序设计》第十周学习总结
20155326 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 计算机网络基础 1.计算机网络概述 网络编程的实质就是两个(或多个)设备(例如计算机)之间的 ...
随机推荐
- 【C++】Vector判断元素是否存在,去重,求交集,求并集
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> //sort函数.交并补函数 4 ...
- 身为一枚优秀的程序员必备的基于Redis的分布式锁和Redlock算法
1 前言 今天开始来和大家一起学习一下Redis实际应用篇,会写几个Redis的常见应用. 在我看来Redis最为典型的应用就是作为分布式缓存系统,其他的一些应用本质上并不是杀手锏功能,是基于Redi ...
- 【linux】驱动-15-定时器
目录 前言 15. 定时器 15.1 内核函数汇总 15.2 内核滴答 15.3 相关结构体 15.4 setup_timer() 设置定时器 15.5 add_timer() 向内核添加定时器 15 ...
- SpringCloud-OAuth2(三):进阶篇
上篇文章讲了SpringCloud OAuth 的实战篇,但是在微服务环境下,常常会有一个认证中心. 而普通服务接收到请求后,判断token是否有效并不是自己处理的,因为token的管理统一交给认证中 ...
- Linux中使用QT读取并显示温度传感器数值
环境: Ubuntu 16.04 64 bit QT5.13.1/QT5.12 原理 对于Linux来说一切都是文件,温度传感器也是个文件,如果要获取某个温度传感器的数值,可以读取相应的文件,Linu ...
- OSPF路由协议
一.OSPF的工作过程 二.OSPF的基本概念 三.DR与BDR 四.OSPF数据包类型 五.OSPF邻接关系的建立 六.OSPF的路由器类型 一.OSPF的工作过程 OSPF路由协议针对每一个区域分 ...
- 03 jumpserver用户管理
3.用户管理: (1)创建用户组: (2)创建用户并加入组: (3)用户通过邮件链接修改密码:
- Redis启动正常,一段时间后报错,连不上redis
Redis报错 1.redis在最终目标上移动临时数据库文件时出错 错误:redis:Error moving temp DB file temp-13792.rdb on the final des ...
- webpack(4)webpack.config.js配置和package.json配置
前言 上一篇文章我们使用webpack打包成功了,但是每次都要自己手动输入打包的文件地址和打包到哪里去的地址,非常麻烦,所以这里介绍使用配置文件进行打包 webpack.config.js 首先我们创 ...
- Docker | Docker常用命令学习笔记
@ 目录 前言 1. 帮助命令: version.info.help 2. 镜像命令: images.search pull.rmi 3. 容器命令: pull.run ps.exit .ctrl+P ...