c语言怎么将数据写入文件

c语言怎么将数据写入文件,第1张

利用VC软件通过代码书写就可以将数据写入文件

首先打开VC++6.0。

选择文件,新建。

选择C++ source file 新建一个空白文档。

先声明头文件#include <stdio.h>。

写上主函数

void main

主要代码

FILE *infile,*outfile,*otherfile

char input

char inputs[10]

int i=0

infile = fopen("d:\\infile.txt","r+")//用fopen函数打开文件

outfile = fopen("d:\\outfile.txt","a+")//用fopen函数打开文件

if ( !infile )

printf("open infile failed....\n")

if ( !outfile)

printf("open outfile failed...\n")

printf("兆尘*********************************************\n")

printf("** This program is to show file operation! **\n")

printf("** The input file is:                      **\n")

printf("**                       d:\\infile.txt     **\n")

printf("** The contents in this file is:           **\n")

printf("\n")

for()

{

input = fgetc(infile)//死循环扮渣读出文件厅猜悄内容

printf("%c",input)

putc(input,outfile)//写入内容

i++

if(input == '\n' || input == EOF)

break

}

fclose(infile)

fclose(outfile)

scanf("%d",i)

运行结果

程序注意的一点,二进制和文本形式的读取区别你需要巩固,读的文件就不要以读写形式打开,养成一个好的习惯。\x0d\x0a另外一个不太重要的一点,id确实很少作为int类型的,因为有些id会很长,比如10位20位,这慧搭样int就存不下了,而用char数组存的话只需要10个字节20个字节就能存下,对于每一位也好比较。\x0d\x0a#include \x0d\x0a#include \x0d\x0atypedef struct student\x0d\x0a{\x0d\x0a int unsigned id\x0d\x0a float score [3]\x0d\x0a float rank\x0d\x0a}Student\x0d\x0a\x0d\x0aint main ()\x0d\x0a{\x0d\x0a Student s\x0d\x0a FILE * fp\x0d\x0a fp=fopen("C:\\f11.txt","r")//尽量以可读方式打开\x0d\x0a if (!fp)\x0d\x0a {\x0d\x0a printf("file cannot be opened")\x0d\x0a exit(1)\x0d\x0a }\x0d\x0a //fscanf(fp,"%d %f %f %f",&s.id,&s.score[0],&s.score[1],&s.score[2])这一行拿到下面while语句里面\x0d\x0a //fprintf(stdout,"%g",s.score[2]) \x0d\x0a FILE * fw\x0d\x0a fw=fopen("C:\\f11a.txt","w")/前渗拿/注喊桐意wb是以2进制形式打开文件,还有目录的格式\x0d\x0a if (!fw)\x0d\x0a {\x0d\x0a printf("file cannot be opened")\x0d\x0a exit(1)\x0d\x0a } \x0d\x0a\x0d\x0a while(!feof(fp))\x0d\x0a {\x0d\x0a fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2])\x0d\x0a s.rank=(s.score[0]+s.score[1]+s.score[2])/3\x0d\x0a fprintf(fw,"%03d\t%.1f\t%.1f\t%.1f\t%.1f\n", s.id, s.score[0], s.score[1], s.score[2], s.rank)//尤其注意fprintf和fwrite不同,fwrite是以二进制形式写文件,如果用fwrite的话将会显示乱码,fwrite和fread配套,fscanf和fprintf配套\x0d\x0a }\x0d\x0a\x0d\x0a fclose (fp)\x0d\x0a fclose(fw)\x0d\x0a return 0\x0d\x0a}

C语言fwrite写入文件可以参考以下的代码:

// 定义一个学生结构体

struct Student_type

{

char name[10]

int num

int age

char addr[30]

}stud[40]

int i

FILE *fp  // 定义一个文件指针fp

fp = fopen("stu.dat", "wb")  // 以二进制可写方式打开stu.dat文件

// 将40个学生的记录写入文件stu.dat中

for(i=0 i<40 i++)

fwrite(&stud[i], sizeof(struct Student_type), 1, fp)

扩展资料:

fwrite函数用法

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream)

返回值:返回实际写入的数据块数目

1、buffer:是一个指针饥蠢拆,对fwrite来说,是要获取数据的地址

2、size:要写入内容的单字节数

3、count:要进行写入size字节的数据项的个数

4、stream:目标文件指针

5、返回实际写入的数据项个数count

说明:写入到文件的哪里与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移档铅动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。

fseek对此函数有作用,但是fwrite函数写到用户空间缓冲区,并未同步烂枣到文件中,所以修改后要将内存与文件同步可以用fflush(FILE *fp)函数同步。

参考资料来源:百度百科-fwrite


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12277706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存