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.0FILE *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中的数据如下:逗态则
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)