C语言-将解决方案存储到输出文件中-防止下一行前出现空格字符

hk8txs48  于 2023-02-21  发布在  其他
关注(0)|答案(1)|浏览(82)

我有一个基本的问题是关于用fprintf将解决方案(2D数组)存储到输出文件的格式。
下面是我的代码中fprintf这个“x0“2D数组的部分(行的维度为size_tot_x,列的维度为size_tot_y):

for (i=0;i<size_tot_x;i++) {
      for (j=0;j<size_tot_y;j++)
         fprintf(file,"%15.11f ",x0[i][j]);
      fprintf(file,"\n");
   }

以及文件的内容:

10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000 
 10.00000000000   9.94633107782   9.90329194436   9.87940702757   9.87940702757   9.90329194436   9.94633107782  10.00000000000 
 10.00000000000   9.89913542001   9.81824830799   9.77335934800   9.77335934800   9.81824830799   9.89913542001  10.00000000000 
 10.00000000000   9.86410551943   9.75512660855   9.69464787655   9.69464787655   9.75512660855   9.86410551943  10.00000000000 
 10.00000000000   9.84546649879   9.72154025406   9.65276637770   9.65276637770   9.72154025406   9.84546649879  10.00000000000 
 10.00000000000   9.84546649879   9.72154025406   9.65276637770   9.65276637770   9.72154025406   9.84546649879  10.00000000000 
 10.00000000000   9.86410551943   9.75512660855   9.69464787655   9.69464787655   9.75512660855   9.86410551943  10.00000000000 
 10.00000000000   9.89913542001   9.81824830799   9.77335934800   9.77335934800   9.81824830799   9.89913542001  10.00000000000 
 10.00000000000   9.94633107782   9.90329194436   9.87940702757   9.87940702757   9.90329194436   9.94633107782  10.00000000000 
 10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000  10.00000000000

我的问题是,我有一个单一的空间,在每一行结束前的下一行。它并没有真正显示与上述数据的解决方案,但这个空间出现时,编辑此文件。我认为问题来自fprintf(file,"\n");:实际上,它似乎在下一行之前添加了一个空格。
如何防止在每一行末尾出现这种单个空格?

qoefvg9y

qoefvg9y1#

在数据序列中放置分隔符大致有两种方法。
1.不要向第一个元素输出分隔符。下列元素在输出元素之前输出分隔符。

//Pseudocode
for(int rows_index = 0; rows_index < rows_size; ++rows_index){
    for(int columns_index = 0; columns_index < columns_size; ++columns_index){
        if(columns_index != 0)//not first element
            print_c(delimiter);
        print_e(elements[rows_index][columns_index]);
    }
    print_c(newline);//output record separator
}

1.在输出除最后一个元素之外的元素之后输出分隔符。

for(int rows_index = 0; rows_index < rows_size; ++rows_index){
    for(int columns_index = 0; columns_index < columns_size; ++columns_index){
        print_e(elements[rows_index][columns_index]);
        if(columns_index != columns_size - 1)//not last element
            print_c(delimiter);
    }
    print_c(newline);//output record separator
}

相关问题