c语言如何将printf产生的数据写到txt文件中

c语言如何将printf产生的数据写到txt文件中,第1张

有以下三种方式可以做到:

1 使用重定向函数freopen将标准输出重定向到对应的txt文件

其使用方法为,在所有的系统输出前,调用

stdout = freopen("out.txt", "w", stdout);

out.txt即所要写入的txt文件名。

2 在执行时处理。

编译最终生成的为升段枣可执行文件,运行也是运行这个文件。

在运行文件时,可以通过重定向符号,将输出重定向到其它文件。

如吵拆果生成的可执行文件为my.exe,那么在命令燃姿行调用

my.exe >out.txt

即可将my.exe的输出写入到out.txt中。

3 以上两种方法都是把所有的标准输出,包括printf, puts, putchar等,均输入到对应文件中。

如果要仅输出printf的结果,可以先打开文件,然后修改代码,把每个printf的调用修改对应的写文件函数。即printf(xxxx)修改为fprintf(fp, xxxxx)的形式。

其中fp为打开的文件指针。

double x ,y ,zx=y=z=0.0

FILE *fp

fp=fopen("C:\\test.txt","w")

while(//循环条件//)

{

fprintf(fp,"%lf %lf %lf\n",x,y,z)

/闷塌/御码给x,y,z赋镇罩哪新值//

}

fclose(fp)

c语言,把数据存在txt文件里,需要使用fopen函数以写文件的方式打开文件。

然后可以使用fprintf,fputc,闭者fputs,fwrite等函数,把相应类型的数据写入文件。

最后,写入完成后使用fclose函数关闭文件。

下面的C语言程序源程序展示了合并A.txt和B.txt两个TXT文件的内容存储到到新建的一个TXT文件,C.txt。

#include <stdio.h>

#include <stdlib.h>

using namespace std

typedef struct Student {

   char name[32]

   char sex[6]

   int age

   float score

} stu

int main(int argc, char* argv[]) {

    stu a[48]

    FILE* ra =fopen("A.txt","r")

    FILE* rb =fopen("B.txt","r")

    FILE* wc =fopen("C.txt","w")

    

    if(ra==NULL || rb==NULL || wc==NULL) {

        printf("failed to open file\n")

        system("pause")

        return 0

    }

    int i=0

    while(fscanf(ra,"%s%s%d%f",&a[i].name,&a[i].sex,&a[i].age,&a[i].score)!=EOF) {

        i++

    }

    fclose(ra)

    

   while(fscanf(rb,"%s%s%d%f",&a[i].name,&a[i].sex,&a[i].age,&a[i].score)!=EOF) {

        i++

    }

    fclose(rb)

    int n=i

    for(i=0i<ni++) {

        fprintf(stdout,"%s\t%s\t%d\t%g\n" ,a[i].name,a[i].sex,a[i].age,a[i].score)

        fprintf(wc,"%s\t%s\t%d\t%g\n" ,a[i].name,a[i].sex,a[i].age,a[i].score)   

    }

    fclose(wc)

    system("pause")

    return 0

}

其中A.txt中的内容如下:

B.txt中的内容如下:

编译运行后,程序执行的结果如下山棚:

同时,存储到C.txt中的数据如下:逗态则


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存