litet problem med 'int' och 'char'

Trädvy Permalänk
Medlem
Plats
Hemma
Registrerad
Feb 2016

litet problem med 'int' och 'char'

Jag hittar inte felet/felen i min kod som Dev++ upptäcker kan någon av er på detta forum lösa mitt fel?
här kommer koden:

1: #include <iostream> 2: #include <iomanip> 3: 4: using namespace std; 5: 6: int main() 7:{ 8: 9: setlocale(LC_ALL, "swedish"); 10: int temp = 0; 11: if (answer 'q' || answer 'Q'); 12: { 13: char answer; 14: cout << "mata in temperatur: "; 15: cin >> temp; 16: cout << temp; 17: cin >> answer; 18: cout << "stop :P\n"; 19: return 0; 20: 21: } 22: 23: else if(temp < 17) 24: { 25: 26: cout << temp < 17"\n"; 27: 28: } 29: 30: else if(temp > 25) 31: { 32: 33: return if; 34: 35: } 35:}

& är kommer de errors som jag får:

C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp In function 'int main()':
10 2 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected ';' before 'int'
11 6 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] 'answer' was not declared in this scope
11 13 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected ')' before 'q'
15 10 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] 'temp' was not declared in this scope
23 2 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] 'else' without a previous 'if'
23 10 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] 'temp' was not declared in this scope
33 10 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected primary-expression before 'if'
33 10 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected ';' before 'if'
33 12 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected '(' before ';'

Höger klicka på bilden & öppna i ny filk. om ni inte ser den.
token

la till [code][/code]
Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Jul 2011

Du saknar ett ; på rad 9, du kan se i felutskriften att den når int innan den läst ett förväntat ;

Trädvy Permalänk
Medlem
Plats
Hemma
Registrerad
Feb 2016

Japp såg det nu tack, men det dyker fortfarande upp errors.
Det är som om att programmet (Dev++) upptäcker error på
nästan varenda rad.

nya errors:

12 13 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected ')' before 'q'
24 2 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] 'else' without a previous 'if'
27 16 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] no match for 'operator<' (operand types are 'std::basic_ostream<char>' and 'int')

34 10 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected primary-expression before 'if'
34 10 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected ';' before 'if'
34 12 C:\Users\elev\OneDrive\Documents\programmering\8_1\8_1.cpp [Error] expected '(' before ';' token

Trädvy Permalänk
Medlem
Plats
Höör
Registrerad
Jun 2002

För att nämna några problem:

if (answer 'q' || answer 'Q'); <--- du har glömt ==

return if <--- if är ett reserverat ord, du kan inte skriva så utan måste returnera ett heltal (eftersom main() är definierat till att returnera int)

Sen tror jag inte swedish är en giltig locale, bör vara sv_SE.UTF-8 eller liknande.

Citera mig för svar.
Arch Linux

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007

Oftast så orsakar ett fel ytterligare fel längre ned, så fixa första felet, kompilera om, upprepa.

Du har för övrigt ett ; efter if-satsen på rad 11. Det betyder att if-satsen avslutas där, så det som du tror står i kroppen av if-satsen står i själva verket i ett nytt scope istället. Så t.ex.

if(false); { cout << "test" << endl; }

kommer alltid att skriva ut test.

Edit: Just ja, lägg gärna koden inom [­code][­/code], så blir den lättare att läsa.

Trädvy Permalänk
Medlem
Plats
Hemma
Registrerad
Feb 2016

@Dimman: ok tack rätt ny till c++

Trädvy Permalänk
Medlem
Plats
Hemma
Registrerad
Feb 2016

@Dimman: Menar du typ såhär då? setlocale(LC_ALL, "sv_SE.UTF-8");