自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勤能补拙

谨记,苛求完美是种拖延症,更多文章见https://github.com/shimachao/blog

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 从文件读入数据块时用feof(fp)判断文件结尾真的保险吗?

今天用文件输入时发现了一个值得注意的问题。先看程序:#include #include int main(void) { FILE*in=fopen("1.txt","r"); int a,b; if(in==NULL) { printf("error:cannot open infile !\n"); r

2011-12-22 22:29:11 3354

原创 C与C++混淆后常犯的错误

1.C语言中没有引用传递,可用传递指针方式代替。2.C语言函数不支持默认参数和函数重载。只能定义不同的函数。3.C89中不能随时随地定义变量。4.C89中木有bool类型。可以通过int模拟。或用enum枚举模拟。或#define false 05.C++中的枚举类型变量不支持自加,自减运算,用之前要强制转换为整型后再转回来。待续。。。

2011-12-18 23:47:42 1194 2

原创 为什么内存泄露后文件IO老失败!不管是fgets还是fread都失败

今天遇到一个问题,在程序的前一段申请了一段内存调用的一个函数申请了内存没有释放。再调用第二个函数实现文件IO发现老失败。我前后检查了fread和fgets的各个参数都没错。单步调试到文件读入的部分就崩溃。搞了好久实在不解为什么。后来网上有人说有可能是内存泄露了。我检查了程序,发现前面调用的函数造成了内存泄露。加了一条free语句后,问题解决了。但是我是不明白为什么前面内存泄露会导致后面

2011-12-11 23:54:59 1967 1

原创 fscanf读入文件时错误的原因?

今天想弄一下二进制文件读写(后来才知道fscanf和fprintf不能用于二进制文件的读写,但下面的总结对ASSCII文件适用。)发现一个问题,搜了好久也没解决如果二进制文件写入的时候,用fprintf写入多个数据时,数据之间没用空格隔开如下面fprintf(out,"%c%d%d%d%d",HT[i].data,HT[i].weight,HT[i].parent,HT[i].lchild,HT

2011-12-11 02:21:33 10414 7

转载 C语言文件打开方式

使用文件的方式共有12种,下面给出了它们的符号和意义。 文件打开方式 意义rt 只读打开一个文本文件,只允许读数据 wt 只写打开或建立一个文本文件,只允许写数据 at 追加打开一个文本文件,并在文件末尾写数据 rb 只读打开一个二进制文件,只允许

2011-12-10 20:26:13 12633 2

原创 直接插入排序、折半插入排序、2-路插入排序实现

按照书上的说法,排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。        为了方便我们直接对整型数组进行排序。将数组元素按照小到大的顺序排列。以后遇到什么记录、结构体排序算法也一样。这里只给出实现,算法说明请看严蔚敏的书。//直接插入排序void InsertSort(int array[],size_

2011-12-09 16:12:30 3269 3

原创 数组中a和&a的区别

最近在看C语言深入一点方面的书,感觉指针和数组的关系有很大要理解的地方。偶尔看到有人写了关于指针和数组的长篇大论。直觉告诉我那是一篇好文章。一定是那位高手几年来实践和琢磨的成果。如果能达到他理解的那种水平,那我的C语言又会上一个台阶。但是为了能有深刻的体会,我先不看他得文章,自己先琢磨一下。int a[5]={0,1,2,3,4}int *p1=a;           //将p1定义为指

2011-12-08 11:33:34 1183 1

原创 C语言中没有引用传递,谨记!

如果在.C文件中出现函数参数为引用则出现莫名其妙的错误void InsertSort(SqList  &L);报错error C2143: syntax error : missing ')' before '&'

2011-12-07 23:59:00 5777 4

原创 #define和typedef的区别,我的理解

typedef   int* pint;   //发生在编译时相当于个int*起了一个别名,以后可以用来定义整型指针,也是一个类型名了。pint p,q;  //p,q都是指向int型的指针而#define pINT int*     //发生在预编译阶段只做简单的宏替换如pINT p,q替换为int*p,q;    //p是指针,而q只是一个整型变量t

2011-12-07 21:29:49 1347

原创 KMP算法C语言的实现

还是没搞懂KMP算法,不得不说这事个牛逼的算法。放在这里,便于以后查看int Index_KMP(const char*str,const char*t){int str_size=strlen(str);int t_size=strlen(t);int *next=new int[t_size];GetNext(t,next,t_size);int i=0

2011-12-06 20:52:39 1938

原创 模式串匹配普通算法实现

KMP算法没搞懂,先把普通的模式串匹配算法实现再说。很简单直接上代码,int Index(const char*str,const char*t){int str_size=strlen(str);int t_size=strlen(t);                         //因为用到了strlen()函数,记得头文件包含string.hint i=0,j=

2011-12-06 15:44:19 1038

原创 C语言文件输入输出错误检测,仅仅是照搬谭浩强书上的,便于以后查阅

1.判断文件是否打开成功:    判断文件是否打开成功可用fopen的返回值if((fp=fopen("filename","r"))==NULL)则打开失败。 2.判断文件是否结束:判断ASCII文件是否结束fgetc()会返回结束标志EOF(即-1)由于二进制文件数据会出现-1所以必须用函数feof(fp)判断,feof(fp)==1则已结束。所以读入一个文件可

2011-12-05 23:21:05 3104

原创 C语言文件定位相关函数

文件中有一个位置指针,指向当前读写的位置,在顺序读写一个文件的过程中,每读写一个字符,位置指针自动滑向下一个字符位置。可以移动这个位置指针,达到随即读写目的。下面是几个和文件定位有关的函数。 1.void rewind(FILE *fp);fp为文件指针。返回值为void 即无返回值该函数的作用是使位置指针重新返回文件的开头。 2.int feek(FILE *fp,Llo

2011-12-05 21:22:43 2965

原创 scanf(),printf()以及fscanf(),fprintf()的返回值

scanf(),printf()以及fscan(),fprintf()的返回值都为int型 scanf()的返回值为成功输入的数据个数如scanf("%d%d%s",&a,&b,s);执行成功返回3.   scanf("%d%d",&a,&b);执行成功返回2.如果在输入的过程中scanf("%d%d",&a,&b);由于某种原因只有a输入成功了则返回1,a、b都没成功则返回0

2011-12-05 17:10:40 8342 3

原创 C语言文件输入输出函数笔记

发现最近写的程序总是要用到文件操作,所以把C语言与文件输入输出有关的函数复习一下。    C语言是通过将一个文件类型指针与文件关联起来来对文件进行打开、关闭、输入、输出。文件类型为FILE(实际上是一个结构体)。定义一个文件指针为FILE *fp;就可以将fp和某个文件关联起来进行操作了。例如要打开一个文件:

2011-12-05 11:11:40 4477 2

原创 链式二叉树后序遍历的非递归形式,终于搞定了

void PostTraverse(BiTree T)//非递归后序遍历二叉树{ Stack s;//用栈来保存结点 BiTree p,lastvisit; p=T; lastvisit=NULL; while (p!=NULL || !s.IsEmpty()) {  while (p!=NULL)       //一直向左,直到遇到的最后一个结点没有左孩子

2011-12-04 18:45:15 1375

原创 数据结构之栈的类模板实现,可满足任何数据类型

//TStack.h#ifndef _TSTACK_H_#define _TSTACK_H_template struct SNode { Type data; SNode *next;};template class Stack{ private:  SNode *top; public:  Stack();  ~Stack();

2011-12-04 13:49:12 1209

原创 今日程序今日写

近来发现如果当时想好的一个程序,思路清晰。打算过几天再写出来。到了真的过几天后发现自己当初信心百倍的程序很难写出来,思路一点都不清晰。即使写出来了,也花费了很多时间。        看来不能相信自己的记忆。今日程序今日写。千万别托。

2011-12-03 23:20:42 876

原创 二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历

二叉树的结点定义typedef struct BiTNode { TElemType data; BiTNode *lchild,*rchild; //左右孩子指针}BiTNode,*BiTree; 二叉树的创建:根据字符数组创建字母ABC等代表结点,#代表空子树也是用递归实现bool CreateBiTree(BiTree &T,char *s,int &po

2011-12-03 23:15:47 2874 1

原创 关于在main.cpp文件中包含另一个.cpp文件的错误及原因

今天打开自己以前写代码突然觉得在man函数中如果要用的很多自己实现的函数,如果把它们都放在main.cpp文件中太臃肿了。调试起来特别不方便。能不能把这些自己实现的函数放到另外一个文件中呢? 可是又不能把这些函数放在.h文件中。因为书上说.h文件中做好只放结构体、类等的申明,函数实现最好放在.cpp文件中。好吧那我就把这些函数放到一个.cpp文件中吧。所以我就新建了一个...

2011-12-03 10:53:09 7977 8

原创 头文件包含时路径问题

直接在vc6.0的工程中点右键添加的头文件。但包含时没写路径。d:\programfile\vc98\include\list.h(37) : error C2146: syntax error : missing ';' before identifier 'Length'd:\programfile\vc98\include\list.h(37) : error C2501: 'DWO

2011-12-01 00:55:07 3084

Java 8函数式编程

高清原版。图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使 用,未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产 权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。

2019-05-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除