Avatar billede mabeto Nybegynder
05. maj 2013 - 19:45 Der er 7 kommentarer og
1 løsning

if sætning virker ikke som planlagt ( simpel c++ )

Når jeg kører mit program og taster 1 som jeg skal, siger den at jeg har tastet et andet tal


//forsøg med at indtaste et tal uden at trykke enter!
#include <iostream>
#include <conio.h>
int main()
{
char programvalg; //declare variabel

std::cout << "hvad er 0 + 1?\n";
    programvalg = getch( );//bruges istedet for "std::cin >> programvalg;
    std::cout << programvalg <<"\n";// for at jeg kan se det er tallet 1!
    std::system("pause");// for at jeg kan nå at se ovenstående cout
if (programvalg == 1)//prøve om tallet er 1, hvis tallet = 1 køres delen med "du tastede 1"
std::cout << "\ndu tastede 1 og det er rigtigt\n";
else //hvis tallet ikke er 1 køres dette
    std::cout << "det er et forkert svar!\n";
std::system("pause");
return 0;
//men når jeg taster skriver den jeg skrev 1 men ved if sætningen siger den ikke var tallet 1!
}


Compiler VS betalt version

Mvh Mads
Avatar billede mabeto Nybegynder
05. maj 2013 - 19:46 #1
Undskyld det rodede udseende!
Avatar billede DeeDawg Nybegynder
05. maj 2013 - 19:54 #2
Nu er C++ ikke lige min stærke side, men jeg er pænt sikker på at der ikke er en funktion der hedder getch().

programvalg = getch( );

Du har nok ment fetch(). :)
Avatar billede mabeto Nybegynder
05. maj 2013 - 20:12 #3
Der er ihvertfald noget der hedder getch( ) for den siger i min anden cout at jeg taster 1. altså programvalg's værdi er ændret til 1. Og jeg fandt getch da jeg søgte efter funktionen.

Men hvad er "identifieren" for fetch??? programmet vil ikke køre uden:)
Avatar billede mabeto Nybegynder
05. maj 2013 - 20:29 #4
Det virker hvis det er cin og int programvalg! virker char ikke med if og else???
Avatar billede mabeto Nybegynder
05. maj 2013 - 20:46 #5
Løsning fundet! hvis jeg blot skrev if (programvalg == '1') Hvis nogen kan forklare hvorfor ville jeg være taknemmelig!
Avatar billede segmose Nybegynder
05. maj 2013 - 21:16 #6
getch giver en char og '1' != 1
Avatar billede DeeDawg Nybegynder
05. maj 2013 - 21:47 #7
Som sagt er C++ ikke min stærke side. Det lignede bare en åbenlys fejl, og det var kun derfor jeg blandede mig. ;)
Avatar billede arne_v Ekspert
06. maj 2013 - 00:35 #8
getch returner faktisk en int, men den vaerdien er char vaerdien og '1' er altsaa det samme som 49.

getch finde ikke i standard C eller C++ men er dog ret udbredt paa MS platforme.

Jeg ville aldrig blande den med C++ iostream I/O.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester