我想存储函数的输出(matrix_output_printf()
)打印以下输出(矩阵):
0 1 2
1 2 3
2 3 4
我想将此输出保存在文本文件中。
在第一次尝试中,我修改了原来的matrix_output_fprintf()
以便它连续使用存储输出fprintf()
。我确实存储了输出,但是代码matrix_output_printf()
已经变了
但是,我不想修改matrix_output_printf()
因为,比方说,它是一个包的一部分,并且想要在不修改它的情况下测试它。
有没有办法存储(使用 C 而不是 bash)输出matrix_output_printf()
从函数外部(或不使用fprintf()
?
内容为file.txt如下:
0 1 2
1 2 3
2 3 4
这是代码:
/* main.c */
#include <stdio.h>
#include <stdlib.h>
void matrix_output();
void matrix_output_printf(){
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
printf("%d\t", i+j);
}
printf("\n");
}
}
void matrix_output_fprintf(){
FILE * fp;
fp = fopen("file.txt", "w");
fclose(fp);
fp = fopen("file.txt", "ab");
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
fprintf(fp, "%d\t", i+j);
}
fprintf(fp, "\n");
}
fclose(fp);
}
int main ()
{
matrix_output_printf();
matrix_output_fprintf();
return 0;
}
如果你想重定向stdout
到一个文件,你可以用freopen
功能:
freopen("file.txt", "wb", stdout);
在此调用之后,任何写入stdout
将写入文件“file.txt”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)