Anonymní profil Anonymní uživatel – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Anonymní uživatel – Programujte.comAnonymní profil Anonymní uživatel – Programujte.com

 

Příspěvky odeslané z IP adresy 88.101.15.–

Anonymní uživatel
C / C++ › chybný výstup programu
22. 1. 2008   #63644

To zacatecnik : Jsem rád za každou pomoc :) Spouštím to přesně tak... a jak sem řekl, do b.txt mi to místo a b c překopíruje poze nesmyslné znaky ⁡⁢⁡⁢⁡... já nejsem v céčku žádný profík, ale nechápu jaktože to někomu chodí a někomu ne :smile11:

homer4
C / C++ › chybný výstup programu
22. 1. 2008   #63590

To Payne : Pouštím to přes dávku a pokaždé mi to vyhodí ty čtverečky. Bylo mi řečeno, že to program vypíše, když je chybný výstup nebo něco v tom smyslu. Prostě neznámé znaky. Odzkoušel jsem to na několika počítačích a nechodí to....

homer4
C / C++ › chybný výstup programu
21. 1. 2008   #63439

Zdravim. M8m problém s jedním programem. Má to přepisovat text z jednoho souboru do druhého. Vše funguje do té doby, než se do vstupního textu zadjí tři znaky (např. a b c). Překopíruje to pouze čtverečky. Myslím že chyba bude někde v tom slovo[znaky+1]='\0'; ale nevím co s tim?

#include <stdio.h>

#include <stdlib.h>



int main(int argc,char *argv[])

{

FILE *vstup,

*vystup;

char c,

slovo[256];

int znaky=0,

pocet_slov=0,

slova;



/*overeni argumentu*/

if(argc != 3) {

printf("Chybny pocet argumentu !\n");

fflush(stdin);

getchar();

exit(1);

}



/* otevřu zdrojový soubor */

if((vstup=fopen(argv[1],"r"))==NULL) {

printf("Nepodarilo se otevrit zdrojovy soubor !\n");

fflush(stdin);

getchar();

exit(1);

}



/* vytvořím cílovy soubor */

if((vystup=fopen(argv[2],"r")) != NULL) {

printf("Cilovy soubor existuje, spustte program s jinym parametrem cilového souboru !\n");

fflush(stdin);

getchar();

exit(1);

}



else {

if((vystup=fopen(argv[2],"w"))==NULL) {

printf("Cilovy soubor se nepovedlo vytvorit !\n");

fflush(stdin);

getchar();

exit(1);

}

}



/* čtu soubor po znacích */

while((c=fgetc(vstup)) != EOF) {

/* když je to mezera */

if( c == ' ' || c == '\n' || c == '\t') {

if (slova == 1) {

pocet_slov++;



/* zapisuju slovo, pokud neni třetím */

if ((pocet_slov % 3) != 0) {

slovo[znaky] = ' ';

slovo[znaky+1]='\0';

fputs(slovo,vystup);

}

}

/* vynuluji délku znaku */

znaky = 0;

slova = 0;

}

else {

slovo[znaky] = c;

znaky++;

slova = 1;

}

}



/* uzavřu oba soubory */

fclose(vystup);

fclose(vstup);



fflush(stdin);

getchar();

return 0;

}

Anonymní uživatel
C / C++ › Prosím o radu
11. 1. 2008   #61879

To zacatecnik : Je to úkol do školy.
To Payne: Díky !!!!

dave3++
C / C++ › Prosím o radu
10. 1. 2008   #61858

Zdravim!
Mám problém s jedním úkolem (viz níže). Program pracuje správně do té doby než se do vstupních hodnot zadá: a b c. Překopíruje to pouze čtverečky. Přitom s velkými písmeny to funguje. Neporadil by mi někdo? Už fakt nevím co s tím. Předem díky!!!

/*
Příklad 46
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;
}



 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý