C基础
cherish_2012
这个作者很懒,什么都没留下…
展开
-
格式字符串
C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:表示输出类型的格式字符 格式字符意义a 浮点数、十六进制数字和p-转载 2014-04-17 17:12:33 · 498 阅读 · 0 评论 -
std::stream读写方法
了解二进制文件的读写方法003 004C++文件流:005fstream // 文件流006ifstream // 输入文件流007ofstream // 输出文件流转载 2014-06-23 16:38:28 · 1124 阅读 · 0 评论 -
C/C++判断某一文件或目录是否存在
1,linux#include int access(const char *pathname, int mode); //mode填F_OK试试。 返回0表示存在;返回-1表示不存在。2,window原创 2014-06-06 10:16:17 · 603 阅读 · 0 评论 -
open和fopen的区别
1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快转载 2014-06-09 14:17:59 · 382 阅读 · 0 评论 -
区分二进制文件和文本文件
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码 0011010100110110 00110111 00111000 十进制码 5 6 7原创 2014-06-09 10:44:37 · 671 阅读 · 0 评论 -
hash_map原理
1 、ash_map原理hash_map基于hash table(哈希表)。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。其基本原理是:使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数)转载 2014-07-03 11:27:37 · 490 阅读 · 0 评论 -
C语言system函数用法
system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。 system函数 是可以调用一些DOS命令,比如system("cls");//清屏,等于在DOS上转载 2014-08-02 13:39:59 · 3328 阅读 · 0 评论 -
C语言rename()函数:重命名文件或目录
头文件:#include 函数rename()用于重命名文件、改变文件路径或更改目录名称,其原型为 int rename(char * oldname, char * newname);【参数】oldname为旧文件名,newname为新文件名。【返回值】修改文件名成功则返回0,否则返回-1。重命名文件:如果newname指定的文件存在,则会被删除转载 2014-08-02 13:27:29 · 30702 阅读 · 2 评论 -
C获取稳健大小
获取文件大小这里有两种方法:方法一、范例:[cpp] view plaincopyprint?unsigned long get_file_size(const char *path) { unsigned long filesize = -1; FILE *fp; fp = f转载 2014-09-05 14:03:33 · 427 阅读 · 0 评论 -
C/C++
http://blog.csdn.net/mznewfacer/article/category/911194/2原创 2014-09-02 17:19:28 · 391 阅读 · 0 评论 -
linux下C获取文件的大小
获取文件大小这里有两种方法:方法一、范例:[cpp] view plaincopyprint?unsigned long get_file_size(const char *path) { unsigned long filesize = -1; FILE *fp; fp = f转载 2014-09-03 18:34:21 · 422 阅读 · 0 评论 -
字节对齐
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据转载 2014-02-18 15:18:41 · 588 阅读 · 0 评论 -
防止缓冲区溢出
C 中大多数缓冲区溢出问题可以直接追溯到标准 C 库。最有害的罪魁祸首是不进行自变量检查的、有问题的字符串操作(strcpy、strcat、sprintf 和 gets)。一般来讲,象“避免使用 strcpy()”和“永远不使用 gets()”这样严格的规则接近于这个要求。今天,编写的程序仍然利用这些调用,因为从来没有人教开发人员避免使用它们。某些人从各处获得某个提示,但即使是优秀的开发人转载 2014-12-02 20:11:19 · 3575 阅读 · 1 评论 -
pragma comment的使用
该宏放置一个注释到对象文件或者可执行文件。#pragma comment( comment-type [,"commentstring"] )comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。commentstring是一个提供为comment-type提供附加信息的字符串,Remarks:1、compile转载 2014-12-03 11:31:54 · 465 阅读 · 0 评论 -
联合体
1,联合体union定义:1)联合体是一个结构;2)它的所有成员相对于基地址的偏移量都为0;3)此结构空间要大到足够容纳最"宽"的成员;4)其对齐方式要适合其中所有的成员;当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。由于联合体中的所有成员是共享一段内存的,因此每个成员的存放首地址相对于于联合体变量的基地址的偏移量为0,原创 2014-12-08 13:10:02 · 607 阅读 · 0 评论 -
C语言必须知道的问题(一)
1,对于用户定义类型,typedef和#define有什么区别?一般来说,最好使用typedef,部分原因是它能正确处理指针类型。原创 2014-12-14 23:43:31 · 439 阅读 · 0 评论 -
C语言文件操作详解
C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 文件的读写操作 fgetc 从文件中读取一个字符 fputc 写一个字符到文件中去 f转载 2015-03-25 01:09:40 · 690 阅读 · 0 评论 -
windows获取文件当前路径
#include #include void main(){}原创 2014-06-24 10:13:04 · 1001 阅读 · 0 评论 -
栈和堆
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(s原创 2014-02-18 15:16:53 · 451 阅读 · 0 评论 -
string函数列表
string 函数列表函数名描述begin得到指向字符串开头的Iteratorend得到指向字符串结尾的Iteratorrbegin得到指向反向字符串开头的Iteratorrend得到指向反向字符串结尾的Iterator转载 2014-03-13 18:00:35 · 689 阅读 · 0 评论 -
位图
2012-11-29 12:48 8150人阅读 评论(14)收藏 举报目录(?)[-]一定义二数据结构三相关操作写入数据读指定位四位图法的缺点五位图法的应用六实现已移到:http://www.iteblog.com/archives/148一、定义 位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状转载 2014-04-08 22:28:16 · 547 阅读 · 0 评论 -
C/C++中指针和引用
一、基本知识指针和引用的声明方式:声明指针: char* pc;声明引用: char c = 'A' char& rc = c;它们的区别:①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改转载 2014-03-18 13:56:28 · 635 阅读 · 0 评论 -
C语言之#define用法
#define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析1.1 #define的概念#define命令转载 2014-03-15 00:34:39 · 656 阅读 · 0 评论 -
辨别程序是C编译的还是C++编译的方式
如果编译器在编译cpp文件那么__cplusplus 就会被定义 如果是一个c文件在被编译那么__STDC__就会被定义 __STDC__是预定义宏.当它被定义后,编译器将按照ansic标准来编译你的c程序. ANSIC标准定义了以下6种可供C语言使用的预定义宏: __LINE__ 在源代码中插入当前源代码行号转载 2014-03-14 21:28:23 · 4950 阅读 · 0 评论 -
C语言运算中的数据类型自动转换原则
1、隐式转换 C在以下四种情况下会进行隐式转换: 1、算术运算式中,低类型能够转换为高类型。 2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。 3、函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋给形参。 4、函数有返回值时,系统将隐式地将返回表达式类型转换为返回值类型,赋值给调用函数。转载 2014-03-14 17:19:20 · 43322 阅读 · 3 评论 -
C关于i++和++i
今天在论坛上无意中看到有人问关于i++和++i的问题,感觉自己也不怎么熟悉,就仔细看了一下。感觉有位大侠的回复相当不错,很有特色,把问题讲得很明白,受教了。这里摘录一下,学习学习!------------------------------------------------------------------------------------------------------转载 2014-03-14 15:55:08 · 653 阅读 · 1 评论 -
C语言中数据类型转换函数
1. 函数名: atof 功 能: 把字符串转换成浮点数 名字来源:array to floating point numbers 的缩写 用 法: double atof(const char *nptr); 2.函数名: atol 功 能: 把字符串转换成长整型数 用 法: long atol(const char *nptr); 3.C语言库函数转载 2014-03-13 17:59:42 · 1635 阅读 · 0 评论 -
《Boost程序库完全开发指南》
[转]读《Boost程序库完全开发指南》 原文: http://dearymz.blog.163.com/blog/static/2056574201141883716608/ 第1章 Boost程序库总论使用Boost,将大大增强C++的功能和表现力 第2章 时间与日期timer提供毫秒级的计时精度,内部是通过std::clock取时间的 progress_t转载 2014-03-13 17:49:22 · 2029 阅读 · 0 评论 -
C/C++中的void和void*
一、voidvoid关键字表示“空类型”的概念。但是,这里的“空类型”不表示“任意类型”,而是表示不存在的意思,也就是说C/C++不允许你写语句void a,不存在类型为void的东西.void表示“不存在”的意思,可以从void的两个应用中加以体现:1、void作为函数的返回值类型时,表示函数返回值不存在,即函数没有返回值。例如:void FunctionNo转载 2014-03-13 17:46:57 · 495 阅读 · 0 评论 -
char转string
#include #include using namespace std;int main(void){char str[]="hello";//方法1string ss1(str);//方法2string ss2;ss2=str;//方法3string ss3;ss3.insert(0,str);coutreturn 0;}原创 2014-03-13 17:44:18 · 411 阅读 · 0 评论 -
内存操作函数memcpy,memccpy,memmove,memchr,memcmp,memicmp,memset
(1)函数原型:extern void *memcpy(void *dest, void *src, unsigned int count);参数说明:dest为目的字符串,src为源字符串,count为要拷贝的字节数。 所在库名:#include 函数功能:将字符串src中的前n个字节拷贝到dest中。返回说明:src和dest所指内存区域不能重叠,函数返回vo原创 2014-02-25 11:03:53 · 1006 阅读 · 0 评论 -
main函数的两个参数
C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为:main (argc,argv)int argv;char *argv[];或写成:mai转载 2014-02-23 16:24:13 · 510 阅读 · 0 评论 -
c语言排序算法总结
一 理论1、稳定排序和非稳定排序简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。 比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,a3,a5,则我们说这种排序是稳定的,因为a2排序前在a4的前面,排序后它还是在a4的前面。假如变成a1,a4,a2,转载 2014-04-07 16:14:41 · 671 阅读 · 1 评论 -
C语言中测试程序运行时间
在c语言中有专门处理系统时间,程序计时等等功能的库,即time.h在time.h中函数clock_t clock( void )可以完成计时功能。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time转载 2014-02-23 14:25:10 · 1164 阅读 · 0 评论 -
一般指针和指向指针的指针
在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例:1. 指向整型指针先看如下示例: 1 #include iostream> 2 using namespace std; 3 4 int main() 5 { 6 int a = 5; 7 int * p = &a; 8 cout "a = "转载 2014-02-14 11:51:50 · 425 阅读 · 0 评论 -
C语言scanf函数
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("",);scanf()函数返回成功赋值的数据项转载 2014-04-17 17:15:22 · 602 阅读 · 0 评论 -
inline 和 宏定义的区别
inline函数是C++引入的机制,目的是解决使用宏定义的一些缺点。1.为什么要引入内联函数(内联函数的作用) 用它替代宏定义,消除宏定义的缺点。宏定义使用预处理器实现,做一些简单的字符替换因此不能进行参数有效性的检测。另外它的返回值不能被强制转换为可转换的合适类型,且C++中引入了类及类的访问控制,在涉及到类的保护成员和私有成员就不能用宏定义来操作。2.inline相比转载 2015-04-16 15:34:52 · 653 阅读 · 0 评论