Zdravím,
mým záměrem bylo vytvořit program který by k hodnotě vložené uživatelem přičetl číslo pět napsal jsem kód ale prý je chybný. Co jsem udělal za chybu ?
#include <iostream>
int Soucet(int x, int y)
{
std::cout << "Prijimam cislo " << x << "\n";
std::cout << "\nScitam\n\a";
return (x+y);
}
int main()
{
using std::cout;
using std::cin;
cout << "Zdravim. Toto je aplikace vytvorena pro ucel pricteni \ncisla 5 k vami zadanemu cislu \n";
int a, b, c;
cout << "Vlozte cislo: ";
cin >> a;
c=Soucet(a,5);
cout << a "+5=" c;
cout << "\nKonec...\n\n";
return 0;
}
Fórum › C / C++
Můj začátečnický problém
mas chybicku zde
cout << a "+5=" c;
má byt
cout << a "+5=" <<c;
když to napíšu :
#include <iostream>
int Soucet(int x, int y)
{
std::cout << "Prijimam cislo " << x << "\n";
std::cout << "\nScitam\n\a";
return (x+y);
}
int main()
{
using std::cout;
using std::cin;
cout << "Zdravim. Toto je aplikace vytvorena pro ucel pricteni \ncisla 5 k vami zadanemu cislu \n";
int a, b, c;
cout << "Vlozte cislo: ";
cin >> a;
c=Soucet(a,5);
cout << a "+5=" <<c;
cout << "\nKonec...\n\n";
return 0;
}
tak mi to stejně vyhodí chyby:
1>c:\users\hubert\documents\visual studio 2008\projects\testy\testy\main.cpp(19) : error C2143: syntax error : missing ';' before 'string'
1>c:\users\hubert\documents\visual studio 2008\projects\testy\testy\main.cpp(19) : error C2296: '<<' : illegal, left operand has type 'const char [4]'
já používám knížku
Naučte se C++ za 21 dní
a jsem s ní spokojen....ještě mám přece jenom dotaz když aplikaci uložím jako *.exe tak se zobrazí výzva k zadání čísla ale při jeho zadání a potvrzení (Enter) zbytek jenom problikne. co a kam mám do kódu napsat aby se ihned nevypnul? DÍK
To Anonymní uživatel : To už se zde probíralo hodněkrát. Stačí se kouknout na nějaké starší téma, v jednom se to probíralo opravdu hodně.
Jinak k té knížce, divim se, že se probírají fce, když ještě není pořádně dovysvětlen výstup.
cin.get();
cin.get();
proměnnou jsem deklaroval a vznikl kód
#include <iostream>
int main()
{
using std::cout;
using std::cin;
int a;
cin >> a;
cout << "napsali jste " << a <<;
cin.get();
cin.get();
return 0;
}
a stejně dostávám chybu
1>c:\users\hubert\documents\visual studio 2008\projects\vstup uživatele\vstup uživatele\main.cpp(8) : error C2059: syntax error : ';'
co teď?
precti nejakej serial, deklarace promeny je zaklad uplnej ... tim ji rikas jakoby jakyho bude datovyho typu ... treba
int a;
to znamena ze bude celociselneho typu, pak mas jiny datovy typy ... string atd. ...
// sry, predstihly mne kolegove ...
Zdravím lidi, tak jsem se setkal se stejnou chybou, dělám ve Visual C++ 2005 a vyhazuje to stále onu chybu error C2059: syntax error : ';' .. Dělal jsem cokoliv a nešlo mi to, předtím sjem úplně stejný program spustil v pohodě a teď mi stejný zdroják vyhazuje error. Dočetl jsem se, že to je chyba Visualu, ale ani jejich řešení mi nepomohlo. Stejnou chybu mi to dělalo ve Visual C++ 2008. Poraďte pls.
Dík
Zdravím lidi, tak jsem se setkal se stejnou chybou, dělám ve Visual C++ 2005 a vyhazuje to stále onu chybu error C2059: syntax error : ';' .. Dělal jsem cokoliv a nešlo mi to, předtím sjem úplně stejný program spustil v pohodě a teď mi stejný zdroják vyhazuje error. Dočetl jsem se, že to je chyba Visualu, ale ani jejich řešení mi nepomohlo. Stejnou chybu mi to dělalo ve Visual C++ 2008. Poraďte pls.
Dík
Zdravím,
tak jsem tu znova :D už jsem trochu pokročil, řekl jsem si, že si udělám převodník času (z jakékoliv časové jednotky do jiné), ale setkal jsem se hned na samém začátku s chybou a nechápu proč tam je.
printf("Vyberte, z jake jednotky chcete prevadet (hodiny, minuty, sekundy)\n");
printf("Prosim zadejte presne jak je na vyber v zavorce: ");
scanf("%d", &jednotka_casu1);
printf("Zadejte cislo, ktere chcete prevest: ");
scanf("%d", &cislo_cas);
printf("Zadejte na jake jednotky chcete prevadet (hodiny, minuty, sekundy)\n");
printf("Prosim zadejte presne jak je na vyber v zavorce: ");
scanf("%d", &jednotka_casu2);
Spustit se to spustí. První jednotka jde zadat, ale pak to už jen vypíše všechen text z funkcí printf a zapisovat nejde. Jednak nechápu, že to přeskočilo druhý scanf a pak text a až konečný scanf do kterého ještě nelze psát. Cursor bliká, ale nereaguje na jekékoliv klávesy.
Vše nad tím mám dobře definované a tak.
Jinak teď jsem to dokončil, tak tady je celý zdroják
#include <iostream>
using namespace std;
int minuta, sekunda, hodina, cislo_cas;
char jednotka_casu1, jednotka_casu2, obnoveni, hodiny, minuty, sekundy;
int navrat = 0;
int a = 3600;
int b = 60;
int main()
{
do
{
printf("Vyberte, z jake jednotky chcete prevadet (hodiny, minuty, sekundy)\n");
printf("Prosim zadejte presne jak je na vyber v zavorce: ");
scanf("%d", &jednotka_casu1);
printf("Zadejte cislo, ktere chcete prevest: ");
scanf("%d", &cislo_cas);
printf("Zadejte na jake jednotky chcete prevadet (hodiny, minuty, sekundy)\n");
printf("Prosim zadejte presne jak je na vyber v zavorce: ");
scanf("%d", &jednotka_casu2);
if((jednotka_casu1 == hodiny) && (jednotka_casu2 == sekundy))
{
while(cislo_cas != 0)
{
(sekunda = (cislo_cas + a));
printf("Vysledek je %i sekund\n", sekunda);
}
}
else if((jednotka_casu1 == hodiny) && (jednotka_casu2 == minuty))
{
while(cislo_cas != 0)
{
(minuta = (cislo_cas + b));
printf("Vysledek je %i minut\n", minuta);
}
}
else if((jednotka_casu1 == hodiny) && (jednotka_casu2 == hodiny))
{
printf("Vysledek je %i hodin\n", cislo_cas); //doplnit ze to je zbytecna operace
}
else if((jednotka_casu1 == minuty) && (jednotka_casu2 == sekundy))
{
while(cislo_cas != 0)
{
(sekunda = (cislo_cas + b));
printf("Vysledek je %i sekund\n", sekunda);
}
}
else if((jednotka_casu1 == minuty) && (jednotka_casu2 == minuty))
{
printf("Vysledek je %i minut\n", cislo_cas); //doplnit ze to je zbytecna operace
}
else if((jednotka_casu1 == minuty) && (jednotka_casu2 == hodiny))
{
while(cislo_cas < 60)
{
(hodina = (cislo_cas - b));
printf("Vysledek je %i hodin\n", hodina);
}
}
else if((jednotka_casu1 == sekundy) && (jednotka_casu2 == hodiny))
{
while(cislo_cas < 3600)
{
(hodina = (cislo_cas - a));
printf("Vysledek je %i hodin\n", hodina);
}
}
else if((jednotka_casu1 == sekundy) && (jednotka_casu2 == minuty))
{
while(cislo_cas < 60)
{
(minuta = (cislo_cas - b));
printf("Vysledek je %i minut\n", minuta);
}
}
else if((jednotka_casu1 == sekundy) && (jednotka_casu2 == sekundy))
{
printf("Vysledek je %i sekund\n", cislo_cas); //zbytecna operace
}
else
printf("DOSLO K CHYBE !\n");
printf("Chcete jeste prevadet? (Ano/Ne - prvni pismeno) ");
scanf("%d\n", obnoveni);
}
while(obnoveni == 'A' || obnoveni == 'a');
system("cls");
return 0;
}
Ještě jsem ho pořádně nekontroloval, aale hned po prvním scanf se okno zavře, takže ani nevím jestli to jde jak má.. Omlouvám se za případně nepřehledné věci, nebo nedokonalosti, teprve začínám, tak klidně mi vše vytkněte co dělám špatně, ať pak už dělám správně.
Dík
proc vubec nepouzijes cin ? kdyz uz to delas v C (nemusis resit ocekavane vstupni typy)
nuz nekolik poznamek:
- kontrolovat kolik toho scanf nacetl !!!!
- char nacitame pomoci %c nikoliv pomoci %d (ten je zase na int)
- kdyz nacteni selze, neplatny vstup ve vstupni fronte zustane - a protoze vsude mas %d ale zadavas znak.. hadej co to provede
kdyz nekontrolujes, kolik toho scanf nacetl?
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Začátečnický problém — založil C3P1C3
Začátečnický problém — založil Nonameprogrammer
Začátečnický problém s AJAXem — založil stibi
Začátečnický příklad — založil 10110111
Zacatecnicky dotaz — založil Figa
Moderátoři diskuze