2013-12-17 2 views
0

나는 아래 코드를 가지고 있습니다.내용을 새 파일에 쓸 때 각 줄의 시작 부분에 줄 번호를 추가하는 방법

두 파일의 내용을 세 번째 파일로 결합하려고하는데 추가하려고합니다. 세 번째 파일의 각 행의 시작 부분에있는 행 번호.

두 파일의 내용을 세 번째 파일로 결합했습니다. 아래 코드를 찾으십시오.하지만 각 줄의 시작 부분에 줄 번호를 추가해야합니다. 제발 도와주세요. 당신을 위해 일했다면

# include <stdio.h> 
# include <conio.h> 
# include <process.h> 

void main() 
{ 
    FILE *f[2],*fp,*f3; 
    char ch; 
    int i; 
    char file[2][20]={"E:/Structure.txt","E:/Text.txt"}; 
    char thirdfile[20]; 
    for(i=0;i<2;i++) 
    { 
     fp=fopen(file[i],"r"); 
     f[i]=fp; 
     if(fp==NULL) 
     { 
      printf("Cannot open file"); 
      exit(1); 
     } 
    } 

    printf("Enter the file to combine contents:"); 
    scanf("%s",thirdfile); 
    f3=fopen(thirdfile,"w"); 
    if(f3==NULL) 
    { 
     perror(thirdfile); 
     exit(1); 
    } 

    for(i=0;i<2;i++) 
    { 
     while(!feof(f[i])) 
     { 
      ch=fgetc(f[i]); 
      fputc(ch,f3); 
     } 
    } 
    fcloseall(); 
    getche(); 
} 

답변

1
int line_number = 0; 

for(i=0;i<2;i++) 
{ 
    int start_of_line = 1; 

    while((ch = fgetc(f[i])) != EOF) 
    { 
     if (start_of_line) 
      fprintf(f3, "%d: ", ++line_number); /* put line number in output file */ 

     fputc(ch,f3); 
     start_of_line = ch == '\n'; 
    } 
} 
+0

감사합니다 조 Z는 :) – user3027039

+0

음, 대답은 +1 및 표시해야합니다. 다행스럽게 도울 수있어! –

+0

BTW, 첫 번째 파일이 개행 문자로 끝나지 않으면'while' 문 뒤에이 if 문을 추가하여 문제를 해결할 수 있습니다 : if (! start_of_line) {fputc ('\ n', f3); }'첫 번째 파일이 첫 번째 파일로 끝나지 않는 경우에만 파일 사이에 누락 된 개행 문자를 넣습니다. –

관련 문제