C++从入门到工作 第二节(20180708)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a6333230/article/details/80960756

1.a += 5;//a = a + 5;
其他的计算相近,这里有的人说区分不开放在前面和放在后面的意义,其实这个单纯地看做一个符号是最好的。和+无关,和=无关,和两者的组合有关。

2.判断语句if

if (word) {
    std::cout << "It is a word.\n";
} else {
    std::cout << "It isn't a word.\n";
}

如果仅为一条结果语句也可以省略花括号

if (word) std::cout << "It is a word.\n"

但是不推荐这样进行处理,因为这样会造成后期代码检错和代码修改的不便。

3.三元操作符

w = ( (word % 2) == 0) ? 'Y' : 'N';//偶数Y,奇数N

这里把值赋给了w,这里也可以直接输出

std::cout << ( (word % 2) == 0) ? 'Y' : 'N';

这里需要注意的是 == 和 = 的区别。

4.判断语句,switch

switch (year) {
    case 1995std::cout << "It's not.\n"
    break;
    case 1996std::cout << "It's not.\n"  
    break;
    case 1997std::cout << "It's not.\n"
    break;
    case 1998std::cout << "It's.\n"
    break;
}

注意,这里的break是直接跳出该循环。
switch的限制是:它只能使用整数和char数据类型。

5.++,–

int a = 5a++; // 6

6.sizeof返回变量或者变量类型在该系统中的内存占用空间

std::cout << "Size of  float" << sizeof(float) << " byte(s).\n";
float w = 0.3;
std::cout << "Size of  w" << sizeof w << " byte(s).\n";

7.while只用当条件满足时才停止。

while (multiplier <= num) {
    sum *= multiplier;
    ++multiplier;
}

8.do while和while的区别在于,前者至少会执行一次循环体,后者可以一次都不执行。

9.我们存储的数据能无限存储么?不能
我们在定义变量时都会提前声明类型,也就是给分配内存,8位二进制,16位二进制,64位二进制等等。
比如分配的空间范围为0~65535,那么65535+1=0,0-2=65534

10.for (声明变量赋值变量;判断是否满足条件;在判断之前执行该项一次)

for (int i =5, int j =8; (i+j) <= w; ++i,++j) {
    sum *= (i+j);
}

11.switch不区分大小写的分支(因为用户输入大小写都是有可能的)

case 'Y':
case 'y':
    std::cout << "OK!";
    break;

12.输入cin,输出cout都是来自于iostream
因此需要在前面加上引入iostream

13.在switch的情况没有满足的case,那么定义一个default作为switch的结尾。

default:
    std::cout << "nothing!\n";
    break;
}

14.当用户输入数据时不会被一边输入一边写入,只会在回车键按下后,一次性发送到C++程序中。
在多项输入时,缓冲区的数据会对其他项造成影响。

std::cin::ignore(5);

这里是丢弃缓冲区的5个字符。

std::cin::ignore(10, '\n');

这里是丢弃10个字符或者直到遇到另一个换行符。

std::cin::ignore(std::cin.gcount()+1);

删除整个缓冲区

15.一次输入两个字符串,中间使用空格分开的

std::cin >> name >> number;

16.读入一整行文本

std::string input;
std::cout << "Input something: ";
std::getline(std::cin, input);

直到换行符出现,输入结束。

17.cin输入的问题:

1.无法把一个值赋值给一个变量,程序仍然继续执行。键盘输入数据与获得的变量不匹配,程序给出一个错误的结果;
2.cin接收到数据才能执行,只是一直按回车键,程序将一直等在那里。
if (std::cin.eof()) //到达文件末尾,返回true;
if (std::cin.fail()) //cin无法工作,返回true;
if (std::cin.bad()) //遇到较为严重的原因,无法工作,返回true;
if (std::cin.good()) //上面情况没发生,返回true;

18.当用户输入错误时,需要程序删除一些缓冲数据,重新等待用户键入。

int age;
std::cout << "Enter your age: ";
while (!(std::cin >> age)) {
    std::cin.clear();
    std::cin.ignore(100, '\n');
    std::cout << "Enter your age: ";
}

增加输入的提示信息

std::cout << "Enter a number: [##.#] ";

19.字符串转换为数值类型

strtol(); //字符串——长整数
strtod(); //字符串——double浮点数
strtold(): //字符串——long double浮点数

20.数据输出到文件——fstream库

#include <fstream>
std::ofstream fileOutput("filename"); //将fileOutput与文件进行关联。

filname的文件格式:

绝对路径:D:\\mylife\\filename.ext或/mylife/filename.ext;
相对路径:../filename.ext或mylife\\filename.ext;

文件调用时不需要原文件存在,可以直接生成。

fileOutput.close();//关闭文件流
std::ofstream fileOutput("name.txt", std::ios::app); //std::ios::app的app为append,意思为追加。程序打开文件,然后在现有文件中增加更多的数据。
if (fileOutput.is_open()) {
fileOutput << name << "|" << age << "\n"; //向程序写入名字|年龄
fileOutput.close();
}

在文件打开时,可以先创建ofstream类型的变量,在调用open()函数

std::ofstream fileOutput;
fileOutput.open("/mylife/filename.ext");
ios::nocreate; //如果不存在,就不创建
ios::noreplace; //如果存在,不要打开
fileOutput("name.txt",(std::ios:;app) | (std::ios::nocreate)); //同时使用多个标志

21.

../ 代表当前目录的父目录;
./ 代表当前目录。

22.

std::string line;
while (std::getline(flieInput, line, '|') ) {
} //getline()会一直读到"|"(默认为:换行符),存入line
std::string entireFile, line;
while (std::getline(flieInput, line) ) {
    entireFile += line; //文件全部读入大字符串
}

23.定义自己的函数

void max(); //void定义函数没有返回值
int max(); //定义一个简单的类型,这里的空白()表示没有输入

函数原型定义在main()之前

#include statements
void max();
int main() {
}
void max() {
}

24.创建带输入参数的函数

void max (int num, int power); //每个参数都要声明
void max (int num, int power = 5); //可以直接赋值,但是赋值项必须在可选参数之前

猜你喜欢

转载自blog.csdn.net/a6333230/article/details/80960756