c语言:怎样将下面输入的记录保存为文件?

int Input(Personal perd[],int n) /*输入若干条记录*/
{int i=0;
char sign,x[10]; /*x[10]为清除多余的数据所用*/
while(sign!='n'&&sign!='N') /*判断*/
{ printf("\t\t\t金额:"); /*交互输入*/
scanf("\t\t\t%s",perd[n+i].money);
printf("\t\t\t收支项目名称:");
scanf("\t\t\t%s",perd[n+i].name);
printf("\t\t\t编号:");
scanf("\t\t\t%d",&perd[n+i].num);
printf("\t\t\t年份:");
scanf("\t\t\t%d",&perd[n+i].year);
printf("\t\t\t月份:");
scanf("\t\t\t%d",&perd[n+i].month);
gets(x); /*清除多余的输入*/
printf("\t\t\t还需要输入记录吗?(Y/N)");
scanf("\t\t\t%c",&sign); /*输入判断*/
i++;
}
return(n+i);
}

使用文件操作函数即可保存为文件。

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

#include<stdio.h>
int a;
char b,c[100];
int main(){
    FILE * fp1 = fopen("input.txt", "r");//打开输入文件
    FILE * fp2 = fopen("output.txt", "w");//打开输出文件
    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
        puts("不能打开文件!");
        return 0;
    }
    fscanf(fp1,"%d",&a);//从输入文件读取一个整数
    b=fgetc(fp1);//从输入文件读取一个字符
    fgets(c,100,fp1);//从输入文件读取一行字符串
    
    printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
    
    fputs(c,fp2);//向输出文件写入一行字符串
    fputc(b,fp2);//向输出文件写入一个字符
    fprintf(fp2,"%d",a);//向输出文件写入一个整数
    
    fclose(fp1);//关闭输入文件
    fclose(fp2);//关闭输出文件,相当于保存
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-18
1. #include <stdio.h>
2. #define NUM 200
3. int main()
4. {
5. FILE * fpSrc, * fpDest;
70
6. fpSrc = fopen( "students.txt", "r");
7. if( fpSrc == NULL ) {
8. printf( "Source file open failure.");
9. return 0 ;
10. }
11. fpDest = fopen( "students2.txt", "w");
12. if( fpDest == NULL) {
13. fclose( fpSrc);
14. printf( "Destination file open failure.");
15. return 0;
16. }
17. char szLine[NUM];
18. while( fgets(szLine, NUM-1, fpSrc)) {
19. fputs(szLine, fpDest);
20. }
21. fclose(fpSrc);
22. fclose(fpDest);
23. return 0;
24. }
上述程序是把student.txt打开然后写入student2.txt
其中fopen()表示打开文件里面的W表示可写。
fputs()表示写文件。
你可以参考修改程序。本回答被提问者和网友采纳
相似回答
大家正在搜