C语言中,如何把数组里的数据写入文件

Python024

C语言中,如何把数组里的数据写入文件,第1张

使用for循环语句+文件操作函数即可把数组里的数据写入文件。

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。

2、例程:

#include<stdio.h>

int i,a[100]

int main(){

    FILE * fp1 = fopen("input.txt", "r")//打开输入文件

    FILE * fp2 = fopen("output.txt", "w")//打开输出文件

    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出

        puts("不能打开文件!")

        rturn 0

    }

    for(i=0fscanf(fp1,"%d",a+i)!=EOFi++)//从输入文件连续读取整数到数组a

    for(i--)fscanf(fp2,"%d ",a[i])//把数组a逆序写入到输出文件当中

    fclose(fp1)//关闭输入文件

    fclose(fp2)//关闭输出文件,相当于保存

    return 0

}

C语言把一个结构体数组写入文件分三步:

1、以二进制写方式(wb)打开文件

2、调用写入函数fwrite()将结构体数据写入文件

3、关闭文件指针

相应的,读文件也要与之匹配:

1、以二进制读方式(rb)打开文件

2、调用读文件函数fread()读取文件中的数据到结构体变量

3、关闭文件指针

参考代码如下:

#include<stdio.h>

struct stu {

char name[30]

int age

double score

}

int read_file()

int write_file()

int main()

{

if ( write_file() < 0 ) //将结构体数据写入文件

return -1

read_file() //读文件,并显示数据

return 0

}

int write_file()

{

FILE *fp=NULL

struct stu student={"zhang san", 18, 99.5}

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

if( fp == NULL ) //打开文件失败,返回错误信息

{

printf("open file for write error\n")

return -1

}

fwrite( &student, sizeof(struct stu), 1, fp ) //向文件中写入数据

fclose(fp)//关闭文件

return 0

}

int read_file()

{

FILE *fp=NULL

struct stu student

fp=fopen( "stu.dat", "rb" )//b表示以二进制方式打开文件

if( fp == NULL ) //打开文件失败,返回错误信息

{

printf("open file for read error\n")

return -1

}

fread( &student, sizeof(struct stu), 1, fp ) //读文件中数据到结构体

printf("name=\"%s\" age=%d score=%.2lf\n", student.name, student.age, student.score ) //显示结构体中的数据

fclose(fp)//关闭文件

return 0

}

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

(1)buffer:指向结构体的指针(数据首地址)   

(2)size:一个数据项的大小(一般为结构体大小)

(3)count: 要写入的数据项的个数,即size的个数   

(4)stream:文件指针。