C语言文件 *** 作逐行写入问题

C语言文件 *** 作逐行写入问题,第1张

#include <stdio.h>#include <stdlib.h>#define LINE 1024char *ReadData(FILE *fp, char *buf){return fgets(buf, LINE, fp)//读取一行到buf}void someprocess(char *buf){printf("%s", buf)//这里的 *** 作你自己定义}int main(){FILE *fpchar *buf, filename[20], *pprintf("input file name:")gets(filename)if ((fp=fopen(filename, "r"))==NULL) {printf("open file error!!\n")return}buf=(char*)malloc(LINE*sizeof(char))while(1) {p=ReadData(fp, buf)//每次调用文件指针fp会自动后移一行if(!p)//文件读取结束则跳出循环breaksomeprocess(buf)}return 0}

程序执行效果与1.txt的内容显示完全一致。

#include<stdio.h>

#include<stdlib.h>

int main()

{

    int num1,num2,sum=0

    FILE *fp=NULL

    printf("-----开始读取文件-----\n")

    if((fp=fopen("c:\\文件1.txt","r+"))==NULL)

    {

        printf("Cannot open file strike any key exit!")

        exit(1)

    }

    printf("-----文件内容-----\n")

    while(fscanf(fp,"%d %d",&num1,&num2)!=-1)

    {

        sum=sum+num1+num2

        printf("%d %d\n",num1,num2)

    }

    fclose(fp)

    printf("-----开始写入文件-----\n")

    if((fp=fopen("c:\\文件2.txt","w"))==NULL)

    {

        printf("Cannot open file strike any key exit!")

        exit(1)

    }

    fprintf(fp,"%d",sum)

    printf("-----写入完成-----\n")

    return 0

}

若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

C语言中文本文件的逐行读取的实现的代码如下:

#include<stdio.h>

main()

{

FILE * fp

fp=fopen(“noexist”,”a+”)

if(fp= =NULL) return

fclose(fp)

}

扩展资料

1、如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值。

2、如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值。

3、可以通过把IFS设置为换行符来达到逐行读取的功能。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存