c语言如何把数据整齐的输入到文件再从文件整齐的输出

如题所述

只要按着一定的格式输出到文件

再按着一定的格式从文件中读出就可以了

比如使用一个结构体

#include <stdio.h>
#include <string.h>

typedef struct
{
    int a;
    char b;
    long c;
}DATA;

int main(int argc,char **argv)
{
    FILE *fp;
    DATA data;

    data.a=1;
    data.b='c';
    data.c=10L;

    //写出
    if((fp=fopen(argv[1],"wb")) == NULL)
        return -1;

    fwrite(&data,sizeof(DATA),1,fp);
    fclose(fp);

    memset(&data,0,sizeof(DATA));
    //读入
    if((fp=fopen(argv[1],"rb")) == NULL)
        return -1;
    fread(&data,sizeof(DATA),1,fp);
    fclose(fp);

    printf("%d\n%c\n%ld\n",data.a,data.b,data.c);

    return 0;
}

如果写入的有字符串的话则可以使用一个字符数组

如果字符串是一个指针的的话则需要指定该字符串的长度

读取时按着这个长度读取字符串

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言如何把数据整齐的输入到文件再从文件整齐的输出
只要按着一定的格式输出到文件 再按着一定的格式从文件中读出就可以了 比如使用一个结构体 include <stdio.h>#include <string.h>typedef struct{ int a; char b; long c;}DATA;int main(int argc,char **argv){ FILE *fp; DATA data; data.a=1; data.b='c'; ...

问个c语言问题:如何实现从程序中键入不同种类数据(姓名,分数)导入文件...
fprintf(fp,"%s %d\\n",name,score);\/\/格式化写入数据到文件 读取用fsscanf

C语言中怎样读取文件数据并对数据排序再重新写入文件
include <stdlib.h> \/**C语言中怎样读取文件数据并对数据排序再重新写入文件*\/ int main(){ FILE *fp,*fpn; \/\/创建文件指针fp和fpn int a[10],b[10],i,j,temp; \/\/a数组用来存入数据 b数组用来接受文件数据进行重新排序输出 for(i = 0; i < 10; i++){ a[i] = i; ...

C语言怎样连续输入多行数据,然后将每行对应结果输出?急求
读取方式可以有两种:如果是控制台程序(没有图形用户界面GUI),可以使用输入重定向功能。这种方式比较简单,方便。如果编译后生成的可执行文件名为a.exe,存放数据的文件为b.txt(和a.exe放在同一文件夹下),则再控制台(命令行提示符状态)输入: a < b.txt 即可。 其中的小于号<,就是输入重定...

C语言中可否将整个结构体写入文件,然后取出来也是按结构体输出
可以先使用fwrite()函数将结构体数据写入文件,然后再使用fread()函数从文件中读取结构体数据。总之,在C语言中处理结构体数据时,采用二进制文件模式可以避免文本模式带来的兼容性问题,并确保数据的正确读写。正确使用fread()和fwrite()函数,将有助于实现高效且可靠的结构体数据处理。

c语言 怎么用数组输入一组数,然后再原样输出?
#include<stdio.h> int main(){ int N;scanf("%d",&N);while(N--){ char a[100];while(scanf("%s",a)!=EOF)printf("%s\\n",a);} return 0;}

C语言中如何对齐输出
printf ("编号\\t数量\\t价格\\t名称du\\n");用\\t隔开输入的信息名称,在输入的时候,每输入一个数就tab一下,就可以对齐了。换码符'\\t',表示水平制表位(horizontal tab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。includ...

用c语言如何读入并使文本文件按某一列排序输出?
使用文件操作函数打开文件,读取信息,进行排序,重新写入并覆盖原文件。例程:include <stdio.h>#include <stdlib.h>int comp(const void* a,const void* b){ return *(int*)a-*(int*)b; }int main(){ FILE *p;\/\/文件指针 int i,j,a[1000]; p = fopen("文件名称", ...

c语言中怎样输入一个3*3的二维数组存储到文件中在文件中按顺序输出二...
include<stdio.h>#include #define N 3 \/\/N定义数组的大小void ShellSort(int a[],int n)\/\/直接插入排序:对含有n个整数的数组a[]进行从小到大排序{ int i,j,t; for(i=1;i<n;i++) for(j=i-1;j>=0&&a[j]>a[j+1];j--) { t=a[j]; a[j]=a[j+1]...

如何用c语言实现文件先写入部分数据,然后再读取输出在屏幕上
文件先写入部分数据,然后再读取输出在屏幕上,所以,在打开文件时必须以可读写方式"+"打开文件。(r+ w+ a+均可)写完后,再读。因此,要把文件指针前移才可以,否则当前位置处在已写完的数据位置,无法读到数据。参考代码:include<stdio.h>int main(){ FILE *fp; char read[1000]; ...

相似回答