背景:
前段时间被要求做了一个门禁系统,自从发现博客园这样一个地方以来,小结成为了我生活必须的一部分,做完一个项目、面完一场试等等。项目应该来说已经半完结了,那么来复习一下在项目中学到的内容、用到的内容以及一些个方法技巧。
1、在写文件搜索路径的时候,有写两个\\,其中一个是转义字符,另一个才是根目录。这部分代码呢在我的firstsearch下,下面贴出它的核心代码:
核心代码中判断右边是否是\,我觉得比较有意思,然后不管三七二十一都要加上“*.*”不然会后面会出现错误。然后用cfindfile类型的变量运行findfile
View Code 1 CFileFind ff; 2 CString dirFile = dirName; 3 if (dirFile.Right( 1 ) != " \\ " ) 4 dirFile += " \\ " ; 5 dirFile += " *.* " ; 6 7 bool result = ff.FindFile(dirFile); 8 if (result) 9 { 10 if (QueueIn( & dirQueue, dirName) == 0 ) 11 { 12 printf( " Error: Queue In Error!\n " ); 13 return 0 ; 14 } 15 } 16 else 17 { 18 printf( " Error: Wrong Dir!\n " ); 19 return 0 ; 20 } 21 22 while ( ! QueueIsEmpty( & dirQueue)) 23 { 24 QueueOut( & dirQueue, outDir); 25 memset(tmpDir, 0 , sizeof (tmpDir)); 26 strcat(tmpDir, outDir); 27 28 printf(outDir); 29 printf( " \n " ); 30 CString tmpFile = outDir; 31 if (tmpFile.Right( 1 ) != " \\ " ) 32 tmpFile += " \\ " ; 33 tmpFile += " *.* " ; 34 result = ff.FindFile(tmpFile); 35 while (result) 36 { 37 result = ff.FindNextFile(); 38 CString dirPath = ff.GetFilePath(); 39 if ( ! ff.IsDots()) 40 { 41 memset(tmpDir, 0 , sizeof (tmpDir)); 42 for ( int i = 0 ;i < dirPath.GetLength();i ++ ) 43 { 44 tmpDir[i] = dirPath[i]; 45 } 46 QueueIn( & dirQueue, tmpDir); 47 } 48 } 49 } 50 ff.Close();得到地址的办法就是getfilepath(),判断是不是文件夹里面有的.或者..则用ff.IsDots判断。2、CString中可以直接通过+来把字符连贯到一起。CString有一个.Format方法,这种方法可以把一些不是CString的数据类型转换成CString.eg:这样可以直接在后面加CString str = "Some Data";str.Format("%s%d", str, 123); 然后:string 这个要特别注意一下。 3、文件的读写fread,fwrite,fscanf,fprintf首先是定义一个FILE *fp指针,然后fopen一个文件,在其中有两个参数,一个指明文件名,一个指明打开的方式,是只读,只写,还是可读,可写,写的话是不是追加,文件的形式是不是二进制。fopen的返回值看是不是null,是的话说明读取失败,不是则读取成功,可以进行后面操作。其后读文件用fread,写文件用fwrite,fread和fwrite都有四个参数buffer,size,count,stream,最后一个参数是文件,buffer是要读入或者写出变量,size是每个写的元素的大小,是几个字节,count写几个这样的元素,每个这样的元素大小都是size.最后的最后都要fclose(fp)。
这里要注意,就是QQ问到过的一个面试题,说怎么读取一个文件。那么就是说要先定义一个FILE*fp类型,然后fopen,然后fread,最后fclose。4、指针注意申明了以后要赋初值,初始化,如->new Feature;不然是不知道指向哪里的。还要记得delete和free。new 用delete,malloc用free.
转载于:https://www.cnblogs.com/liuliunumberone/archive/2011/05/26/2058253.html