C/C++
小月贺金山
这个作者很懒,什么都没留下…
展开
-
VC++ 6.0中getline函数获取字符串居然要回车两次才起作用--微软的Bug
可以使用getline函数配合cin获取用户字符串输入到一个string变量,但必须回车两次才起作用,是微软的bug,在后续版本中已经修改,针对经典的VC++ 6.0,只能自己修改STRING文件了(Microsoft Visual Studio/VC98/Include/STRING)。修改方法如下:1、查找到: else if (_Tr::eq((_E转载 2013-11-18 11:10:52 · 833 阅读 · 0 评论 -
C++和C中的struct区别
typedef struct LNode{ int data; struct LNode *next;}LNode, *LinkList;原创 2014-05-13 20:14:05 · 374 阅读 · 0 评论 -
access函数
access 头文件:unistd.h 用 法: int access(const char *filenpath, int mode); 第一个参数为文件,第二个参数为文件有那些权限和是否存在。 功 能: 确定文件或文件夹的访问权限。如果指定的存取方式有效,则函数返回0,否则函数返回-1。参数说明:filenpath文件或文件夹的路径,当前目录直接使用文件原创 2014-09-05 09:40:54 · 587 阅读 · 0 评论 -
linux下C编程--利用statfs函数查看磁盘空间
linux下C编程--利用statfs函数查看磁盘空间前两天工作有需求,需要查询一个路径的总空间大小和可用空间大小,结果就查到了这个函数,测试程序如下:test.c[cpp] view plaincopy#include #include int main() {转载 2014-09-05 10:06:33 · 4672 阅读 · 0 评论 -
C语言readdir()函数:读取目录函数
相关函数:open, opendir, closedir, rewinddir, seekdir, telldir, scandir头文件:#include #include 定义函数:struct dirent * readdir(DIR * dir);函数说明:readdir()返回参数dir 目录流的下个目录进入点。结构dirent 定义如下:struct转载 2014-09-05 14:05:52 · 2281 阅读 · 0 评论 -
TinyXML:一个优秀的C++ XML解析器
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即文档对象转载 2014-09-10 11:34:30 · 410 阅读 · 0 评论 -
TiXmlPrinter 使用方法
iXmlElement *in_elem = new TiXmlElement("tagname");TiXmlText *text = new TiXmlText("Hello World"); in_elem->LinkEndChild(text);TiXmlPrinter printer; in_elem->Accept( &printer );std::string s原创 2014-09-10 16:29:28 · 1264 阅读 · 0 评论 -
数据类型字节数
32位 64位char 1 1short 2int 4 大多数4,少数8long 4 8float 4 4double 8 8指针 4 8原创 2015-02-09 11:18:54 · 378 阅读 · 0 评论 -
字符串
char c = 0; 等价于 char c = '\0';'\0'的ASCII码为0,即通常所说的空(NULL)'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。原创 2015-03-25 20:44:45 · 352 阅读 · 0 评论 -
#pragma warning
1 常用去警告: #pragma warning(disable:4035) //no return value #pragma warning(disable:4068) // unknown pragma #pragma warning(disable:4201) //nonstandard extension used : n转载 2015-03-25 21:06:53 · 871 阅读 · 0 评论 -
vs2013中静态库lib文件的生成与使用
1.文件 -- 新建项目 -- Visual C++ -- win32项目,输入项目名称,例如:CMath。2.项目右键 -- 添加 -- 新建项CMath.h class CMath{public:CMath();~CMath();void setX(int x);void setY(int y);void print();privat原创 2015-03-28 22:39:15 · 3154 阅读 · 0 评论 -
c++中c_str()
const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同。这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 注意:一定要使用strcpy()函数等来操作方法c_str()返回的指针。 最好不要这样用:原创 2015-03-23 19:57:10 · 503 阅读 · 0 评论 -
static 和 const
const就是只读的意思,只在声明中使用;static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见全局:const,只读的全局变量,其值不可修改.static,规定此全局变量原创 2015-03-23 19:46:14 · 348 阅读 · 0 评论 -
将头文件中定义的结构体导出
rtc.h结构体的定义定义和结构体的导出在头文件中typedef struct TIME_RTC{U8 year;U8 mon;U8 day; //周几U8 date; //日U8 hour;U8 min;U8 sec;}TIME_RTC;extern TIME_RTC rtc_time;rtc.c 结构体变量的定义原创 2014-03-22 20:22:30 · 1363 阅读 · 0 评论 -
关键字volatile
就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必原创 2014-03-09 21:26:24 · 365 阅读 · 0 评论 -
C++问题,遇到过的最难解决的问题。。
#include #include #include #include using namespace std;#define ID_LEN 11#define NAME_LEN 8#define MARGIN_LEN 12 //输出时用于控制间隔struct Student{ char id[ID_LEN+1]; char name[NAME_L原创 2013-12-26 20:24:13 · 1111 阅读 · 1 评论 -
VC++6.0新建工程,运行出错。
C++中,新建工程后,运行时出现fatal error C1010: unexpected end of file while looking for precompiled header directive一般是因为 缺少了头文件 #include "stdafx.h"原创 2013-12-08 09:56:58 · 1303 阅读 · 0 评论 -
C++中的随机数的取得
#include #include "iostream"using namespace std;int main(){ int r=0; srand((unsigned)time(NULL)); //利用当前的时间做为随机数的种子 for(int i=0;i<100;i++) { r=100*rand()/RAND_MAX; //取得100以内的随机整数 co原创 2013-12-08 09:24:04 · 422 阅读 · 0 评论 -
C++中的常用函数库
#include //常用函数库#include //数学函数库#include //时间函数库#include //输入输出函数库using namespace std;原创 2013-12-08 09:26:13 · 474 阅读 · 0 评论 -
C++中的输入、输出格式
1.cout原创 2013-12-08 10:45:57 · 509 阅读 · 0 评论 -
C++中数值的表示方法
1.1e3 表示10的3次方 1e-3 则表示10的3次方的倒数2.整型常量的表示方法:(1)十进制:数字为0-9,如123;(2) 八进制:以0开头,数字为0-7,如0101表示八进制101Q;(3) 十六进制:以0x或0X开头,数字为0-9,A-F如0x41 41H 0xFA 0FAH;原创 2013-12-08 09:45:20 · 2939 阅读 · 0 评论 -
C++中的注意事项
1.一个可执行C++程序必须有且仅有一个main函数,main函数是C++程序的入口,即第一个执行的函数。2.标示符中,字母的大小写是有区别的。如,x1、X1是不同的标识符。3.原创 2013-12-08 10:40:24 · 563 阅读 · 0 评论 -
赋值运算符
#include using namespace std;class Person{private : int *pt;public: Person() { pt=new int; *pt=3; } Person (int t) { pt=new int; *pt=t; } ~Person(){ delete pt; } void display原创 2013-12-09 19:44:35 · 430 阅读 · 0 评论 -
malloc函数
malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。原型extern void *malloc(unsigned int num_bytes);原创 2013-12-13 20:07:36 · 359 阅读 · 0 评论 -
this指针
C++中的this是一个指向对象自身的指针。例子:class Test{ int i, j;public: void set(int a, int b) { this->i = a;//将调用该函数的对象中的成员i 赋值为a this->j = b;//将调用该函数的对象中的成员j 赋值为b }};i原创 2013-12-13 20:10:06 · 503 阅读 · 0 评论 -
VC++6.0 编译时卡死 按钮都变为灰色,关不掉 ,怎么办?
我们平常用vc++6.0的时候,经常会遇到点完编译按钮后会出现卡死的现象,主要是因为没安装VC++6.0的SP6补丁。VC++6最稳定的版本的版本号是6.0.9782.2,如果安装的msdev.exe文件版本不是这个,那就表示没有安装SP6补丁可以去网上下载SP6补丁的安装包,装上就好了。原创 2013-12-13 20:15:07 · 4264 阅读 · 0 评论 -
VC++6.0中利用友元函数进行重载时出现不能访问私有成员的解决办法
问题代码:#include using namespace std;class PhoneNumber{private: char areaCode[4]; char exchange[4]; char line[9];public : friend istream& operator >>(istream &,PhoneNumber &); friend ostream&原创 2013-12-14 17:10:02 · 1408 阅读 · 0 评论 -
VC6.0中友元函数无法访问类私有成员的解决办法
#include using namespace std; class cylinder { friend istream operator>>(istream& is,cylinder &cy); public: inline double square() { return length*(width+height)*2+width*h转载 2013-12-17 18:28:54 · 926 阅读 · 0 评论 -
_makepath 和 _splitpath
Create a path name from components. void _makepath( char *path, const char *drive, const char *dir, const char *fname, const char *ext ); 需要的头文件无返回值 ParameterspathFull path bufferd转载 2015-03-23 19:50:50 · 608 阅读 · 0 评论