目录
1.什么是文件
程序文件包括源程序文件(.c) 目标文件(.obj) 可执行文件(.exe).数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
3
部分:文件路径
+
文件名主干
+
文件后缀
c:\code\test.txt
文件名
。
2.文件的打开和关闭
2.1文件指针
“
文件类型指针
”
,简称
“
文件指针
”
.
例如:
struct student{
char name[20];
int age;
char sex;
};
typedef struct student FILE;
C
编译器的
FILE
类型包含的内容不完全相同,但是大同小异。
FILE
结构的变量,并填充其中的信息,
FILE
的指针来维护这个
FILE
结构的变量,这样使用起来更加方便。
FILE*
的指针变量
:
FILE* pf;//文件指针变量
类型数据的指针变量。可以使
pf
指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它关联
的文件
。
2.2打开和关闭文件
文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。
ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件.
int main()
{
//打开文件
FILE* pf = fopen("test.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
3.文件的顺序读写
3.1 对比一组函数
scanf/fscanf/sscanfprintf/fprintf/sprintf
1、例:使用scanf函数输入数据。
#include<stdio.h>
int main()
{
int a,b,c;
printf(“输入 a, b, c\n”);
scanf(“%d,%d,%d”, &a, &b, &c);
printf(“a = %d b = %d c = %d\n”, a, b, c);
return 0;
}
2、int fscanf(文件指针,格式字符串,输入列表);
功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。
用 法: int fscanf(FILE *stream, char *format,[argument…]);
如:
FILE *fp;
char a[10];
int b;
double c;
fscanf(fp,”%s%d%lf”,a,&b,&c)
返回值:整型,成功读入的参数的个数
3、大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。
1. 常见用法。
char str[512] = {0};
sscanf(“123456 “, “%s”, str);
printf(“str=%s\n”, str);2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
sscanf(“123456 “, “%4s”, str);
printf(“str=%s\n”, str);//str的值为12343. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。
sscanf(“123456 abcdedf”, “%[^ ]”, str);//注意^后面有一空格
printf(“str=%s\n”, str);4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
sscanf(“123456abcdedfBCDEF”, “%[1-9a-z]”, str);
printf(“str=%s\n”, str);5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
sscanf(“123456abcdedfBCDEF”, “%[^A-Z]”, str);
printf(“str=%s\n”, str);
printf函数
原型: extern int printf(const char *format,…);
说明:printf()函数是格式化输出函数, 一般用于向终端(显示器、控制台等)输出字符。printf()函数的调用格式为: printf(“<格式化字符串>”, <参量表>)。
格式控制由要输出的文字和数据格式说明(转换说明)组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
fprintf函数
原型: int fprintf( FILE *stream, const char *format, [ argument ]…)
说明:fprintf是格式化写—库函数,位于头文件<stdio.h>中,其作用是格式化输出到一个流/文件中。
参数:
FILE*stream:文件指针
const char* format:输出格式
[argument]:附加参数列表
sprintf函数
原型:
int sprintf( char *buffer, const char *format [, argument] … );
说明:sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中,位于头文件<stdio.h>中。
参数:
buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。
[argument]…:可选参数,可以是任何类型的数据。
返回值:
sprintf 返回以format为格式argument为内容组成的结果被写入buffer 的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的buffer后,函数sprintf 返回5。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119601.html