关于文件函数的简单使用,以及如何创建一个简单的vi编辑器
读文件:
#include <stdio.h>
Int fgetc(FILE *stream);
功能:从stream指定文件中读取一个字符
参数:
Stream:文件指针
//将一个字符从文件中读出
char ch = fgetc(fp);
printf("%c\n", ch);
//文件的指针没有发生改变
//而是文件的光标发生率为改变
//从而输出下一个字符
char ch = fgetc(fp);
printf("%c\n", ch);
关于读取整个文件内容:
//读取文件结尾 结束标志 EOF -1
char ch
while ((ch = fgetc(fp)) != EOF)
{
printf("%c\n", ch);
}
按照行读写文件 fgets,fputs
- 写文件:
#include <stdio.h>
Int fputs(const char *str,FILE *stream);
功能:将str指定的字符串写入到stream指定的文件中,字符串结束符’\0’不写入文件
参数:
Str:字符串
Stream:文件指针
- 读文件:
#include <stdio.h>
Char *fgets(char *str,int size,FILE *stream);
功能:从stream指定的文件内读入字符,保存到str指定的内存空间,直到出现换行字符,读到文件结尾或是以读了size -1个字符位置,最后会自动加上字符’\0’作为字符串结束
参数:
Str:字符串
Size:指定最大读取字符串的程度(size-1)
Stream:文件指针
关于vi编辑器://编号是按照顺序排列,不必在意数字
- 指定一个文件
Char filename[256];
Printf(“请输入一个文件名:\n”);
Scanf(“%s”,filename);
注意:用来接受换行操作
getchar();
- 打开文件
FILE *fp=fopen(filename,”w”);
- 判断文件可用性
If(!fp)
Return -1;
- 循环录入内容
Char buf[1024];
While(1)
{
Memset(buf,0,1024);
Fgets(buf,1024,stdin);
- //退出命令
//comm=exit
If(!strcmp(“comm=exit”,buf,9))
{
Break;
}
}
- 将字符串写入文件中
Int i=0;
While(buf[i])
{
Fputc(buf[i++],fp);
}
- 关闭文件
Fclose(fp);