如何在C中将多行写入输出文件?

时间:2016-03-31 10:44:14

标签: c file-management file-writing file-read

我是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);
    }

3 个答案:

答案 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);
    }
}