Citat:
nemojte da ste takvi pleaseeeeeeeee................
Sta nam fali ;) ?
// Untested !!!
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define OJ_STO_VOLIM_MAGICNE_BROJEVE 30
/* kopirano iz prethodnih postova, netestirano !!! */
char* ocisti(char* s, char* t) {
int i=0,k=0;
while (*(s+i)!='\0') {
if (*(s+i+1)!=*(s+i)) {
*(t+k)=*(s+i);
k++;
}
i++;
}
*(t+k)='\0';
return t;
}
int main( int argc, char *argv[] )
{
FILE *ulazna, *izlazna;
char rec_procitana[OJ_STO_VOLIM_MAGICNE_BROJEVE];
char rec_ociscena[OJ_STO_VOLIM_MAGICNE_BROJEVE];
int brojac_procesiranih_reci = 0;
if ( argc != 3 )
{
printf( "Sintaksa:\nPROGRAM.EXE <ulazni_fajl> <izlazni_fajl>\n" );
return EXIT_FAILURE;
}
if ( stricmp( argv[1], argv[2] ) == 0 )
{
printf( "Ulazni i izlazni fajl moraju biti razliciti!\n" );
return EXIT_FAILURE;
}
ulazna = fopen( argv[1], "r" );
if ( ulazna == NULL )
{
printf( "Ulazni fajl '%s' se ne moze otvoriti za citanje!\n", argv[1] );
return EXIT_FAILURE;
}
izlazna = fopen( argv[2], "w" );
if ( izlazna == NULL )
{
printf( "Izlazni fajl '%s' se ne moze otvoriti za upisivanje!\n", argv[2] );
fclose( ulazna );
return EXIT_FAILURE;
}
while ( !feof( ulazna ) )
{
/*
Ne pitaj me zasto je ovo inicijalizovano sa NULL... Ako izostavis, dvaput upise
poslednju rec u fajl, sto znaci da je u 'rec_procitana' ostao poslednji upis, a
petlja se okrene jos jednom zbog citanja EOF, valjda :)
*/
rec_procitana[0] = '\0';
fscanf( ulazna, "%s", rec_procitana );
if ( rec_procitana[0] != '\0')
{
fprintf( izlazna, "%s\r\n", ocisti( rec_procitana, rec_ociscena ) );
++brojac_procesiranih_reci;
}
}
fprintf( izlazna, "Ukupno je obradjeno: %d reci.\r\n", brojac_procesiranih_reci );
fclose( izlazna );
fclose( ulazna );
system("PAUSE");
return EXIT_SUCCESS;
}
Prilog 'reci.zip' projekat za okruzenje: Code::Blocks 8.02 + GNU GCC Compiler
[Ovu poruku je menjao X Files dana 29.01.2009. u 21:39 GMT+1]