Problem v spustani programu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problem v spustani programu – C / C++ – Fórum – Programujte.comProblem v spustani programu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
hlavo0
Newbie
9. 7. 2006   #1
-
0
-

mam problem v dev-cpp, ked dam spustit, tak mi vypise tabulku odesilat/neodesilat a ked dam ladit mi vypise "vo vasom program sa vyskytla vynimka (zlyhanie segmentacie)" ...hodil som sme zdrojak, aby ste mi mohli poradit, kde je chyba

#include <stdio.h>
#include <fstream.h>

main ()
{
const float prepocet=2.54; float x,palce,cm; char prevod;
FILE*fp;
fopen("out.log","w");
while (1)
{
zaciatok:
printf("zadajte hodnotu a cm na palce (p), palce na cm(c): ");
scanf("%f %s",&x,&prevod);
switch (prevod)
{
case 'p': cm=x;
palce=x/prepocet;
break;
case 'c': palce=x;
cm=x*prepocet;
break;
case 'k': goto koniec;
break;
default: printf("!!! zle zadane hodnoty !!! zadajte hodnotu znova !!!");
scanf("%s");
goto zaciatok;
break;
}
fprintf(fp,"CM: %f",cm);
fprintf(fp,"PALCE: %f",palce);
fprintf(fp,"n");
}
koniec:
fclose(fp);
cin.get();
cin.get();
}

este mam jeden problem, ze ked kompilujem hociaky program, tak mi vypise vzdy tieto 2 chyby, ale ignoruje ich pri spustani...neviete niekto ako sa daju odstranit? THX za vsetky rady =)

[i]D:Program_FilesDevCppincludec++3.4.2backwardiomanip.h:31, from C:C++examplesmy

Nahlásit jako SPAM
IP: ...–
I+I=I0
Reklama
Reklama
Adam Streck0
Stálý člen
9. 7. 2006   #2
-
0
-

nev?m co znamen? "zlyhanie segmentacie" u prvn? chyby a nechce se mi proch?zet zdroj, ale v tom warningu je naps?no ?e se m? pou??t nev?j?? verze knihovny, ?ili includovat <x> nam?sto <x.h>, ?i pou??t parametr -Wno-deprecated pro jej? zneviditeln?n?.

EDIT: Pardon, ?patn? jsem pro?etl hl??en?...

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
9. 7. 2006   #3
-
0
-



#include <stdio.h>

int main (int argc, char *argv[])
{
const float prepocet=2.54; float x,palce,cm; char prevod;
FILE *fp = fopen("out.log","w");
while (1)
{
zaciatok:
printf("zadajte hodnotu a cm na palce (p), palce na cm(c), pro konec (k): ");

scanf("%f %c",&x,&prevod);
switch (prevod)
{
case 'p': cm=x;
palce=x/prepocet;
break;
case 'c': palce=x;
cm=x*prepocet;
break;
case 'k': goto koniec;
break;
default: printf("!!! zle zadane hodnoty !!! zadajte hodnotu znova !!!");
getchar();
goto zaciatok;
break;
}
fprintf(fp,"CM: %f",cm);
fprintf(fp,"PALCE: %f",palce);
fprintf(fp,"n");
}
koniec:
fclose(fp);
getchar();
return 0;
}

Takze postupne:
FILE *fp;
fopen("out.log","w"); -> FILE *fp = fopen("out.log","w");
Funkce vraci ukazatel na strukturu FILE.

scanf("%f %s",&x,&prevod); -> scanf("%f %c",&x,&prevod);
Jelikoz nacitate jeden znak a ne slovo.

scanf("%s"); -> getchar();
To je taky blbost, kam tu hodnotu ukladate?

Jeste bych mel pripominky: Zrovna v tomhle pripade se lze krasne vyhnout pouziti goto - a to tak, ze vyhodite tu nekonecnou smycku a budete testovat nejakou hodnotu, navic se tim vyhnete vasemu prazvlastnimu ukonceni programu, kdy musite zadat nejprve nejakou hodnotu a potom pismeno 'k'. Ale budiz.
Co se tyce vaseho druheho dotazu, tak jednoynacne nepouzivejte stare nekompatibilni hlav. soubory , ale ty, ktere jsou ve stadardu - tzn. bez koncovky h(Ale plati to pouze u headeru pro C++)
#include <fstream>





Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 115 hostů

Podobná vlákna

Problém pri spuštaní — založil DeniLeet

Moderátoři diskuze

 

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