c语言文件可用代码存放,C语言 文件(示例代码)

小白一个,看到有错误,希望指出,万分感谢

/****************************************************************

C语言文件概述:

一般文件可分为二进制文件和文本文件。

约定:我们把数据在终端上的表现形式称为数据的终端形式,而不

称为字符形式。

注:终端是指键盘 显示器等和用户直接打交道的输入输出设备。

二进制文件是把内存中的书按其在内存中的储存形式原样输出到磁

盘上存放,也就是说存放的是数据的原样式。

文本文件是把数据终端形式的二进制数据输出到磁盘上存放,也就

是说存放的是数据的终端形式。

****************************************************************/

/*文件打开函数: fopen 函数

*    原型是 FILE * fopen(char * filename, char * mode);

*    参数: fileopen 表示指定文件名称  mode 指打开文件的方式

*文件关闭函数: fclose(文件指针)

*    fclose函数也带回一个值,顺利的执行了关闭操作,返回值为0,否则

*    返回值为 EOF(-1)。

*注意:

*    (1)除非有其他说明,输入又叫读,是指从文件(外存)输入到内存

*         输出又叫写 是指从内存输出到外存。

*    (2)如果不能实现打开任务,fopen函数将会带回一个出错信息。

*         此时fopen函数将会带回一个空指针值 NULL

*         NULL 在stdio.h 文件中已经被定义为 0

*         常用下面的方法打开一个文件

*         if (fp = fopen("filename", "r")) == NULL)

*         {

*             printf("cannot open this file\n");

*             exit(0);  // 或者 return;

*         }

*     (3)在程序开始运行时,系统自动打开3个标准文件:标准输出 标准

*          输入 标准出错输出。通常这三个文件都与终端相联系。因此从

*          终端输入或向终端输出都不需要打开终端文件。系统自动定义了

*          3个文件指针stdin stdout stderr,分别指子向终端输入 终端输

*          出 标准出错输出。

*/

// fscanf fprintf 用于文本的格式化输入输出

// 一般调用形式为 fscanf 或 fprintf(文件指针,格式字符串,输入或输出列表)

// 文件测试 文件的读写

# include

typedef struct student

{

int code;

char name[10];

int age;

}St;

int main(void)

{

FILE * out;

int i;

St a[2];

// 检查打开操作是否出错

if ((out = fopen("student.dat", "w+")) == NULL)

printf("Cannot open output file.");

for (i = 0; i < 2; ++i)

{

// 使用scanf也可以实现此功能

fscanf(stdin, "%d%s%d", &a[i].code, &a[i].name, &a[i].age);

fprintf(out, "%d%s%d\n", a[i].code, a[i].name, a[i].age);

}

fclose(out);

return 0;

}

/*

运行结果:

1 王小林 18

2 斯大林 99

--------------------------------

Process exited after 29.82 seconds with return value 0

请按任意键继续. . .

并且在此程序文件的文件夹中生成了一个名为 student.dat 的文件。

*/

/*

fread 和 fwrite 函数用于和二进制文件相关的输入和输出

一般调用形式为 :

fread(buffer, size, count, fp);

fwrite(buffer, size, count, fp);

参数说明:

buffer是一个指针,对于fread来说,它是读入数据的

地址。对于fwrite来说它是要输出数据的地址。

size是要读写的字节数。

count是要读写size字节数据的个数

fp是文件类型指针

*/

# include

typedef struct student

{

int code;

char name[10];

int age;

}St;

int main(void)

{

FILE * out, * in;

int i;

St a[2] = {{1, "www", 18}, {2, "hhh", 99}};

if ((out = fopen("stu.dat", "wb")) == NULL)

printf("Cannot open output file.");

for (i = 0; i < 2; ++i)

{

fwrite(&a[i], sizeof(St), 1, out);

}

fclose(out);

if ((in = fopen("stu.dat", "rb")) == NULL)

printf("Cannot open input file.");

for (i = 0; i < 2; ++i)

{

fread(&a[i], sizeof(St), 1, in);

printf("%d, %3s, %d\n", a[i].code, a[i].name, a[i].age);

}

fclose(in);

return 0;

}

/*

运行结果:

1, www, 18

2, hhh, 99

--------------------------------

Process exited after 0.0915 seconds with return value 0

请按任意键继续. . .

*/

/*

fgetc函数和 fputc函数 可用于读写文本文件或二进制文件

注意:fgetc函数和 fputc函数读写字节级别(每次1字节)的

数据,因此,fgetc函数和 fputc函数读写二进制文件的时候

可以通过多次操作从而实现对任意数据类型的数据的读写。

fgetc函数一般调用形式

字符变量 = fgetc(文件指针);

fputc函数一般调用形式

fputc(字符, 文件指针);

此处字符可以是任何数据类型的一个字节的部分数据。

*/

# include

# include

int main(void)

{

FILE * fp;

char ch;

if ((fp = fopen("out.dat", "w")) == NULL)

printf("Cannot open file.");

ch = getchar();

while (ch != ‘#‘)

{

fputc(ch, fp);

ch = getchar();

}

fclose(fp);

return 0;

}

/*

运行结果:

w

w

e

3

#

--------------------------------

Process exited after 7.194 seconds with return value 0

请按任意键继续. . .

*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值