LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: Poradna problém s programem v jazyce C

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
problém s programem v jazyce C 10.1.2008 19:01 daniel kmoch
  |- Re: problém s programem v jazyce C 10.1.2008 21:10 Josef Němec
  L Re: problém s programem v jazyce C 10.1.2008 22:30 daniel kmoch
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4852x
2. FreeBSD
Download: 9044x
3. PCLinuxOS-2010
Download: 8541x
4. alcolix
Download: 10916x
5. Onebase Linux
Download: 9632x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6219x

1. xinetd
Download: 2383x
2. RDGS
Download: 937x
3. spkg
Download: 4694x
4. LinPacker
Download: 9918x
5. VFU File Manager
Download: 3173x
6. LeftHand Mała Księgowość
Download: 7172x
7. MISU pyFotoResize
Download: 2780x
8. Lefthand CRM
Download: 3540x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3089x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz