Witam,
mam za zadanie napisać program który otwiera 2 pliki tekstowe i wypisuje w pierwszym wierszu,pierwszy wiersz z pierwszego pliku oraz pierwszy wiersz z drugiego pliku,potem przechodzi do drugiego itd itd.
Np:
Plik1:
Ala
Ola
Plik2:
ma kota
nie ma psa
Powinno zwrócić na stdout:
Ala ma kota
Ola nie ma psa
Przy czym mój program,nadpisuje dane i wychodzi:
Ala kota
Olae ma psa
O co chodzi? Na początku probowałem uzyć funckji strcat(),ale po wielu nieudanych próbahc postanowiłem wsyztsko zrobić po kolei,litera po literce,uzywając tab_3.Niestety i to nie pomogło.Ktoś pomoże? Nie mam już sił ;(
Kod: (nazwy 2 plików są pobierane z wiersza polecen,jako argumenty funckji main() )
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(int argc,char** argv){
FILE * stream_1;
FILE *stream_2;
stream_1=fopen(argv[1],"rb");
stream_2=fopen(argv[2],"rb");
char *status_1;
char *status_2;
while(1){
char temp_1[100],temp_2[100],temp_3[205],sign;
int i=0,j=0;
status_1=fgets(temp_1,99,stream_1);
status_2=fgets(temp_2,99,stream_2);
if((status_1==NULL)&&(status_2==NULL)) break;
if(status_1!=NULL && status_2!=NULL) {
while(temp_1[i]!='\n' && temp_1[i]!='\0') {temp_3[i]=temp_1[i]; i++;}
temp_3[i++]=' ';
while(temp_2[j]!='\n' && temp_2[j]!='\0') {temp_3[i]=temp_2[j]; i++; j++;}
temp_3[i]='\0';
puts(temp_3);
}
else if (status_1==NULL) fputs(temp_2,stdout);
else fputs(temp_1,stdout);
putchar('\n');
}
return 0;
}