|
|
problém s programem v jazyce C
|
10.1.2008 19:01
daniel kmoch
|
Mám problém s tímto programem. Funguje správně, ale pokud se do zdrojového souboru zadá "a b c", tak vypisuje nesmyslné znaky. Nevěděli byste někdo v čem je problém?
Zdroják:
/*
Program přepisuje slova, každé třetí vynecháva, přičemž slova od sebe rozezná
pomoci mezer
*/
#include <stdio.h>
int main(int argc,char *argv[])
{
FILE *vstup,*vystup;
char c,slovo[256];
int znaky=0,pocet_slov=0;
slovo[0]='\0';
/*overeni argumentu*/
if(argc != 3)
{
printf("Chybný počet argumentů !\n");
system("PAUSE");
exit(1);
}
/* otevřu zdrojový soubor */
if((vstup=fopen(argv[1],"r"))==NULL)
{
printf("Nepodařilo se otevřít zdrojový soubor !\n");
system("PAUSE");
exit(1);
}
/* vytvořím cílovy soubor */
if(vystup=fopen(argv[2],"r"))
{
printf("Cílový soubor existuje, spusťte program s jiným parametrem cílového souboru !\n");
system("PAUSE");
exit(1);
}
else
{
if((vystup=fopen(argv[2],"w"))==NULL)
{
printf("Cílový soubor se nepovedlo vytvořit !\n");
system("PAUSE");
exit(1);
}
}
/* čtu soubor po znacích */
while((c=fgetc(vstup)) != EOF)
{
/* když je to mezera */
if( c == ' ' )
{
pocet_slov++;
/* zapisuju slovo, pokud neni třetím */
if( pocet_slov == 3 )
{
pocet_slov = 0;
}
else
{
slovo[znaky] = ' ';
slovo[znaky+1]='\0';
fputs(slovo,vystup);
}
/* vynuluji slovo a délku znaku */
znaky=0;
slovo[0]='\0';
}
else
{
slovo[znaky] = c;
znaky++;
if (znaky>250) znaky=250;
}
}
if( pocet_slov != 2 )
{
slovo[znaky] = '\0';
fputs(slovo,vystup);
}
/* uzavřu oba soubory */
fclose(vystup);
fclose(vstup);
system("PAUSE");
return 0;
}
|
|
|
Re: problém s programem v jazyce C
|
10.1.2008 21:10
Josef Němec
|
Program jsem zkusil zkompilovat a spustit i s vytvorenym souborem vstup.txt s pismeny a b c
Vse mi funguje bez problemu. Avsak kosmeticka uprava kodu a vubec kod samotny mi prijde zbytecne slozity(dal bych ti tak za 3) :-D |
|
|
Re: problém s programem v jazyce C
|
10.1.2008 22:30
daniel kmoch
|
s úpravou jsem se nijak moc nepáral, to je pravda :-D Nechápu to, když tam zadám "A B C", tak to pracuje správně a když "a b c", tak to překopíruje čtverečky?
|
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|