| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 637 人关注过本帖
标题:有关文件的知识
只看楼主 加入收藏
hehuihh2004
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-3
收藏
 问题点数:0 回复次数:2 
有关文件的知识

C语言中的文件分为两大类:
⑴文本文件;
⑵二进制文件。
例如:整数5678在文本文件中存储的全部为字符;在文本文件中将每个数字看成一个字符,在此5678被分为四个单元,每个单元为每个位数上的数字的ASCII码值,即:

5 6 7 8


上述整数的二进制文件存储形式为:


EOF:表示一个文件的结尾。
★一个文件的打开和关闭:
fopen:有两个参数,格式为 fopen(路径或名字,参数)
例如:myfile.c在c语言根目录中,会返回一个指针,假设定义了一个文件指针FILE *fp;
fp=fopen(”c:\\myfile.c”,”---”)
★对字符的操作:
fgetc:从文件中读出一个字符;
fputc:从文件中写入一个字符。
例如:fp=fopen(”c:\\myfile.c”,”rb”);
ch=fgetc(fp);
★fputc:有两个参数,把一个字符写入到文件中。
fputc(----,----)


例如:从键盘上输入一串字符,将其写入文件myfile.c中,之后将文件中内容输出在屏幕上给用户看。
void main()
{
FILE *fp;
char ch;
if ((fp=fopen(“myfile.c”,”r”))==NULL)
{
printf(“Can’t open the file and press any key to exit\n”);
getch();
exit();
}
printf(“\nPlease input the character:\n”);
ch=getch();
while (ch!=’\n’)
{
fputc(ch,fp);
ch=getch();
}
rewind(fp); //从文件中读完一个字符后,再将文件指针fp加1,继续读下一个字符。
ch=fpgetc(fp);
while (ch!=EOF)
{
putch(ch);
ch=fgetc(fp);
}
fclose(fp);
getch();
}
★对字符串的操作函数:
fputs和fgets
例如:fgets(str,n,fp) //将文件fp里n-1个字符读到str里去。
注意:fgets的函数返回值是返回str的首地址。
例如:假如要读文件中并没有n-1个字符,当读到第10个字符时遇到回车或者结束符时,仍然会返回str的首地址,最多也只可以返回一行数据。
fputs的格式为:
fputs(----,----); //将字符中内容读到fp里去

例如:从键盘上输入一串字符,将其写入文件myfile.c中,之后将文件中内容输出在屏幕上给用户看。(方法:利用字符串操作函数予以实现)
#include “stdio.h”
#include “string.h”
#include n 6
void main()
{
FILE *fp;
char chs[n];
char ch[n];
int i;
if ((fp=fopen(“myfile.c”,”w”))==NULL)
{
printf(“Can’t open the file ang press any key to exit\n”);
getch();
exit();
}
printf(“\nPlease input the string!\n”);
scanf(“%s”,ch);
fputs(ch,fp);
rewind(fp);
for (i=0;i<n;i++)
printf(“%c”,chs[i]);
fgets(chs,6,fp);
printf(“%s”,*chs);
fclose(fp);
}

搜索更多相关主题的帖子: 二进制 文件 知识 
2006-11-04 20:03
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
以只写方式打开的文件,
不应该包含使用文件流读入函数,如 fgets()。

欢迎加入 MVC 技术讨论群(新群:90093426)
2006-11-04 21:13
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 

研究 FILE 的结构可能会对流文件深刻些(可以在 stdio.h 中找到这个结构)。
标准输入输出函数包括了缓冲文件系统和非缓冲文件系统,
缓冲文件系统的基本目的是减少读写磁盘的次数,它的实现,应该还要借助于非缓冲文件,
因为非缓冲文件正是操作系统功能的体现。

或者说,除了为文件建立一个缓冲区(这块缓冲区与使用 malloc() 自行分配的内存毫无差异),
并为缓冲区设立一些访问规则外,
缓冲文件与非缓冲文件无任何差别。


欢迎加入 MVC 技术讨论群(新群:90093426)
2006-11-04 21:21
快速回复:有关文件的知识
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011442 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved