我是C语言中写入/读取等文件操作的新手。是否有解决方案将下面的所有printf()写入我的输出文本文件?执行后,我无法将所有行写入我的文本文件。
for(i=0;i < n;i++)
if(i!=startnode)
{
outputFile = fopen(myOutputFile, "w");
printf("\nCOST of %d = %d", i, cost[i]);
printf("\nTRACE = %d", i);
j=i;
do
{
j=pred[j];
printf(" %d", j);
}
while(j!=startnode);
}
答案 0 :(得分:3)
您可以使用fprintf(FILE * stream, const char * format, ... )并将文件句柄传递给该函数。
for(i=0;i < n;i++)
if(i!=startnode)
{
outputFile = fopen(myOutputFile, "a");
fprintf(outputFile,"\nCOST of %d = %d", i, cost[i]);
fprintf(outputFile,"\nTRACE = %d", i);
j=i;
do
{
j=pred[j];
fprintf(outputFile," %d", j);
}
while(j!=startnode);
fclose(outputFile);
}
根据您的评论更新您打开文件的模式:fopen("asdas","a")
答案 1 :(得分:0)
试试这个:
outputFile = fopen(myOutputFile, "a");
for(i=0;i < n;i++)
if(i!=startnode)
{
fprintf(outputFile,"\nCOST of %d = %d", i, cost[i]);
fprintf(outputFile,"\nTRACE = %d", i);
j=i;
do
{
j=pred[j];
fprintf(outputFile," %d", j);
}
while(j!=startnode);
}
答案 2 :(得分:0)
试试这个:
freopen(myOutputFile, "a+",stdout); //Redirect the standard output to file, "a+" - is for appending info if the file is has data before it is openned
for(i=0;i < n;i++)
{
if(i!=startnode)
{
printf("\nCOST of %d = %d", i, cost[i]);
printf("\nTRACE = %d", i);
j=i;
do{
j=pred[j];
printf(" %d", j);
}while(j!=startnode);
}
}