摘要: fgets函数将文件流中的数据读入到内存中,是按行读取char *fgets(char *s, int n, FILE *stream);最多读入n-1个字符,遇到换行符也算一个字符,也算在n-1个字符内。因为最后一个字符是'\0' 所以最多只能有n-1个字符。从键盘输入的所有数据都是字符形式的。以空格加以区分,在计算机内部根据数据类型转换。所有的编程数据都得经过内存,就像之前所说必须经过操作系统一样。不管是内存还是文件亦或是其他的输入输出设备写出来的都是源字符,只是表达方式不一样而已,例如文件是看不到换行的,标准输入是用enter换行,内存用'\n'换行。最终 阅读全文
posted @ 2012-07-24 20:51 l851654152 阅读(189) 评论(0) 推荐(0) 编辑
摘要: static的作用函数内部的变量作用域在函数内部,函数外部的作用域看范围。extern和auto是两个极端,static是对他们的缓和。在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容chara='A';//globalvariablevoidmsg(){printf("Hello\n");}下 阅读全文
posted @ 2012-07-24 10:39 l851654152 阅读(920) 评论(0) 推荐(0) 编辑
摘要: 函数原型char *strtok(char *s, const char *delim);分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。函数原型char *strstr(char *str1, char *str2);找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。函数原型char *strchr(char* _Str,int _Ch);查找字符串s中首次出现字符c的位置。 阅读全文
posted @ 2012-07-24 09:31 l851654152 阅读(180) 评论(0) 推荐(0) 编辑
摘要: //useCtowriteintofile FILE*pFile=fopen("1.txt","w");CStringstrTemp="helloworld!";fwrite(strTemp,1,strTemp.GetLength(),pFile);fflush(pFile);fclose(pFile);//useC++towriteintofile ofstreamofs("2.txt");CStringstr="UseC++.HelloWorld!";ofs.write(str,str.Ge 阅读全文
posted @ 2012-07-19 09:46 l851654152 阅读(566) 评论(0) 推荐(0) 编辑
摘要: View Code //首先从UTF8转到UNCODE//再从UNCODE转到ANSIint ConvUtf8ToAnsi(CString& strSource, CString& strChAnsi){ if (strSource.GetLength() <= 0) return 0; CString strWChUnicode; strSource.TrimLeft(); strSource.TrimRight(); strChAnsi.Empty(); int iLenByWChNeed = MultiByteToWide... 阅读全文
posted @ 2012-07-19 09:41 l851654152 阅读(315) 评论(0) 推荐(0) 编辑
摘要: VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_tCString path = "asdf";wchar_t wstr[256] = path.AllocSysString();或者:wchar_t wcstring[256];MultiByteToWideChar(CP_ACP,0,path,-1,wcstring,256);2. wchar_t转CStringWideCharToMultiByte(CP_ACP,0,wcstring,256,path.GetBuffer(0),256,NULL,NU 阅读全文
posted @ 2012-07-18 16:40 l851654152 阅读(277) 评论(0) 推荐(0) 编辑
摘要: linux命令哪些命令完成哪些功能基本知道,只是一些参数需要自己调整,在记忆参数时,无非是产生,删除,更新,与查看。其实在世界万物中包括人在内的所有对象都具有这四种基本的操作,就像最基本的数据类型一样。然后组合。function翻译成功能或者函数,函数本来就是实现功能的作用。输入输出<< >>箭头的指向方向表示目的地。函数之间的调用关系,通过变量也就是参数来传递数据。进程之间传递数据可以通过变量,也可以通过文件的形式。浏览器和服务器端传递数据通过表单发送的变量,如get和post方法。编程总结:enum是对数据类型数量的扩充,struct是对数据类型中类型的扩充。ext 阅读全文
posted @ 2012-07-16 10:07 l851654152 阅读(222) 评论(0) 推荐(0) 编辑
摘要: -l参数和-L参数-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件)。放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了, 阅读全文
posted @ 2012-07-14 13:30 l851654152 阅读(3538) 评论(0) 推荐(0) 编辑
摘要: 前面有讲过数据的流动是必须得经过操作系统的,但是有一种基于VM对象的方式可以让数据不经过操作系统而直接到文件,提高效率。具体描述如下:在讲述文件映射的概念时, 不可避免的要牵涉到虚存(SVR 4的VM). 实际上, 文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施, 用户将文件映射到自己地址空间的某个部分, 使用简单的内存访问指令读写文件;另一方面, 它也可以用于内核的基本组织模式, 在这种模式种, 内核将整个地址空间视为诸如文件之类的一组不同对象的映射中的传统文件访问方式是, 首先用open系统调用打开文件, 然后使用read, write以及lseek等调用进行顺序或者随即的 阅读全文
posted @ 2012-07-10 17:24 l851654152 阅读(278) 评论(0) 推荐(0) 编辑
摘要: GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为前导符。比如有一个命令:$ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt在GNU/Linux系统,对这种情况的一种合理解释是:a是短选项,带一个参数vv;add是长选项,无参数;b是短选项,无参数;file是长选项,带一个参数a.txt;b.txt是参数;-是参数,通常表示标准输入,stdin;--是一个指示符,表明停止扫描参数,其后所有部分都是参数,而不是选项;-e是参数;c.txt是参数为 阅读全文
posted @ 2012-07-09 13:55 l851654152 阅读(2032) 评论(0) 推荐(0) 编辑