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
Fórum › C / C++
Problem v spustani programu
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?...
#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>
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žení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 102 hostů
Podobná vlákna
Problém pri spuštaní — založil DeniLeet
Problem se spustenim programu — založil horvy
Problem s otvaranim programu — založil Xmanik
Problem se vstupem do programu — založil vyhnanek
Problém s kompilací programu v c++ — založil petod
Moderátoři diskuze