C++
长弓的坚持
这个作者很懒,什么都没留下…
展开
-
do{}while(0)用法
do..while(0)的用法真是的,我用C++还是太少了。这个宏以前明明见过的,但其存在的意义突然就想不起来了。刚才问了下axx大才又“知道”了一次。赶紧记下来。 这样的宏见过么:Cpp代码 #define FOO(x) do {\ some_code_line_1;\ some_code_line_2;\ } while (0) (注意转载 2014-04-22 21:06:44 · 892 阅读 · 0 评论 -
指针的初始化
http://blog.csdn.net/mhjcumt/article/details/7351032使用未初始化的指针是非常危险的。通过一个未初始化的指针会很容易覆盖随机的内存区域。造成的损害取决于如何倒霉,所以初始化指针不仅仅是一个好主意。通过指向一个已经被定义变量的地址 很容易初始化一个指针。以下可以看到,通过使用运算符 & 及变量的名称来用变量number的地址对指针pnumbe转载 2014-09-15 09:37:38 · 980 阅读 · 0 评论 -
C++建立动态二维数组
C++建立动态二维数组主要有两种方法:1.使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组 int **b=new int*[row]; //分配一个指针数组,将其首地址保存在b中转载 2016-09-16 23:02:05 · 1101 阅读 · 0 评论 -
C++ 把输出结果写入到文件中
文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了转载 2016-09-16 23:03:06 · 24596 阅读 · 0 评论 -
C++自动创建命名的txt文件以及读写txt文件
1 c++如何用在指定文件夹内新建名字有规律的txt文本文档100个?#include #include using namespace std;int main(){ int n = 0; char str[100]="C:\\Documents and Settings\\Administrator\\转载 2016-09-16 23:08:17 · 17934 阅读 · 0 评论 -
C/C++语言中计算int,float,double,char四种数据类型所能表示的数据范围
char 1字节 short 2字节 int 4字节 long 4字节 long long 8字节 float 4字节 double 5字节 long double 12字节unsigned int 0~4294967295 in转载 2016-09-16 23:15:09 · 5997 阅读 · 2 评论 -
C++中sprintf()函数的使用详解
本篇文章是对C++中sprintf()函数的使用进行了详细的分析介绍,需要的朋友参考下在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:i转载 2016-09-16 23:15:54 · 857 阅读 · 0 评论 -
ASSERT(断言)的用法
我一直以为assert仅仅是个报错函数,事实上,它居然是个宏,并且作用并非“报错”。 在经过对其进行一定了解之后,对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(假设成立){ 程序正常运行;}else{ 报错&&终止程序!(避免由转载 2016-09-16 23:16:55 · 473 阅读 · 0 评论 -
C++中 gets()函数
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。功能编辑从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。转载 2016-09-19 00:03:24 · 103623 阅读 · 0 评论 -
C语言中fgets()函数
从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。转载 2016-09-19 00:07:34 · 2374 阅读 · 0 评论 -
C++中getline()函数
我的技术博客:www.cnblogs.com/overcode学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”。书上给的程序如下:int main(){string line:while(getline(cin,line))coutreturn 0;}大家会发现运转载 2016-09-19 00:09:02 · 451 阅读 · 0 评论 -
break, continue, goto, return语句详解
关于break,continue,goto,return语句区别详解(所有语言通用的语法知识)一、break 1. break语句形式: break; 2. break语句功能: A. switch语句中,break语句会终止其后语句的执行,退出switch语句。 B. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,转载 2016-09-19 00:14:06 · 821 阅读 · 0 评论 -
C++中floor,ceil , round , rint用法
1.Math.floorfloor,英文原意:地板。 Math.floor 函数是求一个浮点数的地板,就是 向下 求一个最接近它的整数,它的 值肯定会小于或等于这个浮点数。再看下面的例子的时候,脑中想象一个竖着的数轴,负数在下,正数在上。这样对于向上取整和向下取整的说法,可能会更容易理解。例子: System.out.println("Math.f转载 2016-09-19 00:16:36 · 6242 阅读 · 1 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静转载 2016-09-19 00:23:59 · 306 阅读 · 0 评论 -
C++中相对路径和绝对路径
C++中相对路径与绝对路径以及斜杠与反斜杠的区别文件路径 正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。文件路径的表示可以分为绝对路径和相对路径:1、绝对路径表示相对容易,例如pDummyFile =fopen("D:\\vctest\\glTexture\\texture\\dummy.bmp", "rb"); 给出了从盘符开转载 2016-09-28 23:39:01 · 8139 阅读 · 0 评论 -
如何混合编译C语言和C++
如何混合编译C语言和C++ 实际开发过程中,C++中会调用C与语言编写的代码,我在网络上面找到一篇写得很好的文章 http://blog.csdn.net/keensword/article/details/401114 就着上面的例子,我使用C语言采用两种方法重写了一下。 方法一、全局函数和变量在devVar.c文件中实现,在extern.cpp文件中使用ex...转载 2019-09-01 21:43:50 · 1852 阅读 · 0 评论 -
c怎么把数组初始化为0(数组很大)
如果是初始化,只要定义第一个元素为0,后面就全为0了,如int a[SIZE] = {0};如果是在定义以后想全部赋为0,用memset()函数是比较快的。如:int a[SIZE];memset(a, 0, sizeof(int)*SIZE);转载 2014-09-14 22:04:56 · 12361 阅读 · 1 评论 -
ASCII码表
ASCII码表 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。转载 2014-09-14 16:16:11 · 420 阅读 · 0 评论 -
C++中的const成员函数介绍
List {02private:03 Node * p_head;04 int length;05 ……06Public:转载 2014-04-11 22:28:27 · 664 阅读 · 0 评论 -
c++类的构造函数详解
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c++类的构造函数详解 一、 构造函数是转载 2014-04-02 19:56:02 · 464 阅读 · 0 评论 -
C++中null与0的区别
0是一个数字,本身有着一些原生的特性诸如:起始,没有,正负的分界线,0/1中的0还可以表示否定。 NULL用于将指针指定为空指针,也就是说该指针不指向任何对象,不可以对该指针进行解引用,否则系统会报错。 很巧合并且可能令人迷惑的是,在Windows环境下,NULL正好被定义为0,对于Windows程序,将指针初始化为0或NULL的作用是相同的,都使指针无效。这是因为Windows的内存转载 2014-04-02 11:14:44 · 2021 阅读 · 1 评论 -
vs2012中 build、compile,debug区别
在Build菜单下有Compile,Build,Rebuild All三个菜单项用于编译程序。其中Compile用于编译当前打开的活动文档;Build只编译工程中上次修改过的文件,并链接程序生成可执行文件。如果以前没有作过编译,它会自动调用Rebuild All操作,依次编译资源文件、源程序文件等;Rebuild All不管文件是否作过修改,都会编译工程中的所有转载 2014-09-05 10:10:27 · 7389 阅读 · 0 评论 -
c++ Resource file and Source file
有个学生把CPP文件新建到Resource file文件夹里去了,当然,他顺利的完成了保存、编译、链接、运行等动作;但我纳闷他是怎么把CPP文件放到那里面去的。 应该把CPP文件放在SourceFile文件夹里,他那样做是错误的。他问我:“MISS,那这两个文件夹有什么区别吗?” 当然是有区别的,不然它们俩存在一个不就可以了吗? 基本上是这样原创 2014-08-22 11:01:41 · 3366 阅读 · 0 评论 -
C++实现整数与字符串的互相转换
#includeusing namespace std;void inttostr(int val,char*buf){if(buf!=NULL){ if(val==0){buf[0]=0;buf[1]='/0';}bool negative=(valunsigned int absval=(val>0)? val:-val;int length原创 2014-08-22 15:24:16 · 1760 阅读 · 0 评论 -
C++求解单向链表倒数第k个节点
#includeusing namespace std;struct listnode{int data;listnode *next;};class linklist{private:listnode *head;public:linklist();void addtolist(int data);void display();list原创 2014-08-22 18:10:32 · 514 阅读 · 0 评论 -
C++实现大数的乘法
//没有考虑相乘的数中有负数的情况,只考虑了两个数都是正数,或者是与数字0相乘// 首先说一下乘法计算的算法,从低位向高位乘,在竖式计算中,我们是将乘数第一位与被乘数的每一位相乘,记录结果,//之后,用第二位相乘,记录结果并且左移一位,必须左移一位,保证竖式加法的正确性。以此类推,直到计算完最后一位,再将各项结果相加。得出最后结果。#includeusing namespace原创 2014-09-19 23:12:36 · 789 阅读 · 0 评论 -
C++实现大数的减法
//算法也是从低位开始减。先要判断减数和被减数那一个位数长,减数位数长是正常减;被减数位数长,则被减数减减数,最后还要加上负号;//两数位数长度相等时,最好比那一个数字大,否则负号处理会很繁琐;处理每一项时要,如果前一位相减有借位,就先减去上一位的借位,无则不减,再去判断是否能够减开被减数,//如果减不开,就要借位后再去减,同时置借位为1,否则置借位为0#include#inclu原创 2014-09-19 23:11:44 · 1646 阅读 · 0 评论 -
浅析_tmain()与main()的区别
_tmain()是为了支持unicode所使用的main一个别名,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那个让你困惑的里转载 2014-08-24 22:39:00 · 548 阅读 · 0 评论 -
合并两个已经排序的数组
#includeusing namespace std;void adda1toa2(int a1[],int a2[],int a1length,int a2reallength){if(a1==NULL||a2==NULL)return;int k=a2reallength+a1length-1;int i=a1length-1;int j=a2realleng原创 2014-08-27 08:56:28 · 428 阅读 · 0 评论 -
c++中类的定义与头文件的关系
class Stack;此句只是作为Stack class的前置申明,只是将calss名次告诉编译器,并未提供此class的任何其他信息。前置申明使得我们可以进行类指针的定义,或以此class作为数据型别://以下这种写法,必须先有class的前置申明才行Stack *pt=0;void process (const Stack&);接下来,在定义实际的Stack class转载 2014-08-28 11:56:27 · 5642 阅读 · 1 评论 -
从尾到头打印链表
#include"listandstack.h"void list:: addtolist(int data){listnode*p=head;listnode*q=new listnode;q->data=data;q->next=NULL;while(p->next!=NULL)p=p->next;p->next=q;}void li原创 2014-08-28 16:18:53 · 352 阅读 · 0 评论 -
#ifndef 在头文件中的作用
在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。方法:例如要编写头文件test.h在头文件开头写上两行:#ifndef _TEST_H#define _TEST_H//一般是文件名的大写头文件转载 2014-08-28 15:34:57 · 6864 阅读 · 0 评论 -
C++ return ,break,continue,关键字
1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出. 2)continue 也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.转载 2014-09-01 09:05:50 · 958 阅读 · 0 评论 -
VS2017缺少头文件的解决办法
VS2017此次更新之后,Windows SDK版本更新到10.0.15063.0,这之后我在新建项目编译程序时遇到缺少‘WinSock2.h’等头文件的提示。解决方法:1、调出项目属性页,选择“VC++目录”。2、“包含目录”中添加路径“C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared;C:\Pro...转载 2019-09-01 21:52:43 · 6493 阅读 · 0 评论