2017-09-18 6 views
0

출력 파일에 저장하기 위해 fprintf를 사용하는 솔루션 (2D 배열)의 형식에 대한 기본적인 문제가 있습니다. 여기C 언어 - 출력 파일에 솔루션 저장 - 다음 행 이전 공백 문자 방지

(치수 열의 행의 size_tot_xsize_tot_y들)이 "x0"2D 어레이는 fprintf 내 코드의 일부 :

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");에서 오는 것이라고 생각한다. 실제로, 다음 줄 앞에 하나의 공백을 추가하는 것으로 보인다.

행의 각 끝에서이 단일 공백을 방지하는 방법은 무엇입니까?

안부

+0

방법'에 대한 (j = 0; j를 BLUEPIXY

+0

당신은 반드시'fputc'를 의미합니다. 어쨌든, 이것은 간단한 솔루션입니다, 많이 고마워요! – youpilat13

+0

아, 그래, 나쁘다. 'putchar ('')'->'fputc ('', file)' – BLUEPIXY

답변

1

데이터의 순서로 구분 기호를 넣어 대략 두 가지 방법이 있습니다.

  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 
    } 
    
  2. 출력.

    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 
    }