回顾C++
Visual Studio快捷注释和取消注释:
0. Visual Studio出现:error LNK 1168:无法打开.exe进行写入:
删除Debug文件夹
1. #pragma once和#ifndef
为了避免同一个文件被include多次。
语法:
#pragma once
// contents of the header
...
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// contents of the header
...
#endif // SOME_UNIQUE_NAME_HERE
#pragma once方式产生于#ifndef之后。#ifndef方式受C/C++语言标准的支持,不受编译器的任何限制;而#pragma once方式有些编译器不支持(较老编译器不支持,如GCC 3.4版本之前不支持#pragmaonce),兼容性不够好。#ifndef可以针对一个文件中的部分代码,而#pragma once只能针对整个文件。
————————————————
版权声明:本文为CSDN博主「fengbingchun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengbingchun/article/details/78696814
2. new/delete 和 new[]/delete[]区别
浅谈 C++ 中的 new/delete 和 new[]/delete[]_跟踪的英文-CSDN博客
C++ 中的创建和删除数组(new/delete 和 new[]/delete[])_c++ delete数组-CSDN博客
释放数组时需要用delete[]
string *psa = new string[10]; //array of 10 empty strings
delete [] psa;
3. 文件读写
3.2 文件功能操作
3.2.1如何判断一个文件是否存在:is_open
ifstream ifs;
ifs.open(FILENAME, ios::in); //读文件
if (!ifs.is_open())
{
cout << "文件不存在" << endl;
ifs.close();
return;
}
3.2.2 如何判断一个文件是否为空:EOF
EOF:End of File
思路:右移一个字符,看是否是EOF。
ifstream ifs;
char ch;
ifs >> ch;
if (ifs.eof())
{
cout << "文件为空" << endl;
ifs.close();
return;
}
3.2.3 逐词读取
每遇到空格、换行、文件尾就完成一次读取(可以一次读取连续的内容)
ifstream ifs;
ifs.open(FILENAME, ios::in);
int id;
string name;
int dept_num;
while (ifs >> id && ifs >> name && ifs >> dept_num)
{
}
3.2.4 Terminal中按任意键清屏并返回上级
//按任意键清屏后回到上级目录
system("pause");
system("cls");
4. switch case语句中定义变量
两种方法:
1. 外部定义
int ret;
switch(num)
{
case 0:
cout<<"haha"<<endl;
break;
case 1:
ret = 10;
cout<<"heihei"<<endl;
break;
default:
break;
}
2. case中内部定义,但是该代码段要加大括号
switch(num)
{
case 0:
cout<<"haha"<<endl;
break;
case 1:
{
int ret;
ret = 10;
cout<<"heihei"<<endl;
break;
}
default:
break;
}