孙鑫VC学习笔记:第十二讲 介绍常量指针、指针常量,文本、二进制文件
2006-08-15 15:16
609 查看
◆指向常量的指针
它指向的内容是常量,不能修改;但是指针本身存放的是指针值,可以修改。
char ch[5]="list" 这种赋值形式只能在数组定义的同时进行。
常量字符串会自动加上/0,所以字符串长度为五
通常,如果想用指针传参,通常会将形参声明的指向常量的指针类型
当实参传入之后,形参无法修改实参指向的内容,从而保证了数据的一致性
------------------------------------------------------------------------
◆指针常量
与指向常量的指针相反,指针本身是一个常量不可修改;而它指向内容可以修改
文件的读写分为二进制与文本方式,它们是有区别的
------------------------------------------------------------------------
◆文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式
文件通常分为二进制文件和文本文件
二进制文件是包含在ASCII及扩展ASCII字符中编写的数据或程序指令的文件。
一般是可执行程序,图形,图像,声音等文件。
文本文件(也称为ASCII文件):
它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。
它是以“行”为基本结构的一种信息组织和存储方式的文件,
可用任何文字处理程序阅读的简单文本文件
如果以文本方式存储三个字符到文件中,其中有一个是换行符,文件会自动增加一个回车符,再以文本方式读取时仍然是三个字符,但以二进制方式读取时是四个字符
ASCII码 10为换行符 13为回车符
------------------------------------------------------------------------
◆文本方式和二进制方式
当我们按照文本方式王文件中写入数据时,一旦遇到换行字符(ASCII为10),
则会转换为回车--换行(ASCII为13、10)。在读取文件时,一旦遇到回车--换行
的组合(即连续的ASCII13、10),则会转换为换行字符(ASCII为10)。
当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到文件中
如果以二进制方式存储一个换行符,文件不会自动增加一个回车符,而上直存储ASCII码10,当以文本方式读取二进制存储的换行符时,我们看到的是一个小黑块。
------------------------------------------------------------------------
所以最好用与保存文件时一样的方式来读取文件。
◆一个题目:
要将98341写入文件,并在记事本中原样输出数字.
//要将98341写入文件,并在记事本中原样输出数字。
//直接将一个整形数据98341写入文件读取出来将是乱码
//如果将整形数据用itoa(i,ch,10)转换成字符之后就OK
int i=98341;
fwrite(&i,4,1,pFile);
//其实在文件中,都是以ASCII码写入的,
//可以将作为一个字符串保存到文件
CString str="98341";
fwrite(str,1,strlen(str),pFile);
//如果对ACSII码比较熟悉,用下面的办法也可以
char ch[5];
ch[0]=9+48;
ch[1]=8+48;
ch[2]=3+48;
ch[3]=4+48;
ch[4]=1+48;
fwrite(ch,1,5,pFile);
fclose(pFile);
它指向的内容是常量,不能修改;但是指针本身存放的是指针值,可以修改。
char ch[5]="list" 这种赋值形式只能在数组定义的同时进行。
常量字符串会自动加上/0,所以字符串长度为五
通常,如果想用指针传参,通常会将形参声明的指向常量的指针类型
当实参传入之后,形参无法修改实参指向的内容,从而保证了数据的一致性
------------------------------------------------------------------------
◆指针常量
与指向常量的指针相反,指针本身是一个常量不可修改;而它指向内容可以修改
文件的读写分为二进制与文本方式,它们是有区别的
------------------------------------------------------------------------
◆文件是在计算机内存中以二进制表示的数据在外部存储介质上的另一种存放形式
文件通常分为二进制文件和文本文件
二进制文件是包含在ASCII及扩展ASCII字符中编写的数据或程序指令的文件。
一般是可执行程序,图形,图像,声音等文件。
文本文件(也称为ASCII文件):
它的每一个字节存放的是可表示为一个字符的ASCII代码的文件。
它是以“行”为基本结构的一种信息组织和存储方式的文件,
可用任何文字处理程序阅读的简单文本文件
如果以文本方式存储三个字符到文件中,其中有一个是换行符,文件会自动增加一个回车符,再以文本方式读取时仍然是三个字符,但以二进制方式读取时是四个字符
ASCII码 10为换行符 13为回车符
------------------------------------------------------------------------
◆文本方式和二进制方式
当我们按照文本方式王文件中写入数据时,一旦遇到换行字符(ASCII为10),
则会转换为回车--换行(ASCII为13、10)。在读取文件时,一旦遇到回车--换行
的组合(即连续的ASCII13、10),则会转换为换行字符(ASCII为10)。
当我们按照二进制方式往文件中写入数据,则将数据在内存中的存储形式原样输出到文件中
如果以二进制方式存储一个换行符,文件不会自动增加一个回车符,而上直存储ASCII码10,当以文本方式读取二进制存储的换行符时,我们看到的是一个小黑块。
------------------------------------------------------------------------
所以最好用与保存文件时一样的方式来读取文件。
◆一个题目:
要将98341写入文件,并在记事本中原样输出数字.
//要将98341写入文件,并在记事本中原样输出数字。
//直接将一个整形数据98341写入文件读取出来将是乱码
//如果将整形数据用itoa(i,ch,10)转换成字符之后就OK
int i=98341;
fwrite(&i,4,1,pFile);
//其实在文件中,都是以ASCII码写入的,
//可以将作为一个字符串保存到文件
CString str="98341";
fwrite(str,1,strlen(str),pFile);
//如果对ACSII码比较熟悉,用下面的办法也可以
char ch[5];
ch[0]=9+48;
ch[1]=8+48;
ch[2]=3+48;
ch[3]=4+48;
ch[4]=1+48;
fwrite(ch,1,5,pFile);
fclose(pFile);
相关文章推荐
- 孙鑫VC学习笔记:第十二讲 (一) 介绍常量指针、指针常量,文本、二进制文件
- 孙鑫VC学习笔记:第十二讲 (四) 用API函数、CFile类操作文件
- 孙鑫VC学习笔记:第十二讲 用C++函数读写文件
- 孙鑫VC学习笔记:第十二讲 用API函数、CFile类操作文件
- 孙鑫VC学习笔记:第十二讲 (五) 往win.ini的文件中写入数据
- 孙鑫VC学习笔记:第十一讲 图形重绘方法二 利用元文件
- 孙鑫VC++视频学习笔记之8: MFC中指针的获取
- 孙鑫VC学习笔记:第十三讲 保存可串行化的类对象 如何获取文档与视类指针
- 孙鑫VC学习笔记:第十二讲 读写注册表
- 孙鑫VC学习笔记:第十一讲 如何把元文件保存到文件当中
- 孙鑫VC学习笔记:第十三讲 用CArchive类读取与保存文件
- 孙鑫VC学习笔记:第八讲 逃跑按钮的巧妙实现和MFC中指针的获取
- 孙鑫vc++ 第十二课 笔记 C语言对文件读写的支持
- 孙鑫vc++ 第十二课 笔记 C语言对文件读写的支持
- 孙鑫:第十二讲 常量指针、指针常量、二进制操作(转
- 孙鑫VC学习笔记:第十三讲 (一) 用CArchive类读取与保存文件
- 孙鑫VC学习笔记:第八讲 逃跑按钮的巧妙实现和MFC中指针的获取
- 孙鑫VC学习笔记:第十三讲 (五) 保存可串行化的类对象 如何获取文档与视类指针
- 【C Prime Plus】学习笔记,Chapter 12, 指针常量和常量指针
- 孙鑫vc学习笔记_第11课_part2