|
| if funktion vælge kun else værdien Fra : Christian Epstein |
Dato : 31-05-04 21:33 |
|
Kære NG undskyld det lange kode der følger, men jeg er jo ny i det her
og ved ikke helt hvilken del af koden det er galt med... Jeg er i gang
med at lave en quiz, for at træne lidt i at lave funktioner, men min
quiz vil kun vælge if funktionen... jeg tror det er fordi den tror det
ene er en tal værdi og det andet er en tekst værdi, men jeg kan ikke
forstå hvorfor... Hvertfald får jeg hele tiden at vide jeg har svaret
forkert også selvom svaret og det der står man skal svare til
syneladende er det samme
kode
#include <iostream.h>
int main ()
{
//declare virables
int r, f;
r = 0;
f = 0;
char Navn [20];
char Svar [20];
//Velkomst
cout << "\nSkriv venligst dit navn\n";
cin >> Navn;
cout << "\n\nHej ";
cout << Navn;
cout << "\nVelkommen til X-quizen\nDesignet af Christian Epstein\n";
cout << "\nHvad er hovedstaden i Danmark?";
cin >> Svar;
cout << "\nDit svar var ";
if (Svar == "København")
{
cout << "Rigtigt";
r++;
}
else
{
cout << "Forkert\nDu svarede " << Svar << " og det rigtige svar er
København";
f++;
}
cout << "\n\n";
cout << "Du havde " << r << " Rigtige\n";
cout << "Du havde " << f << " Forkerte\n";
cout << "\n\n";
return 0;
}
------------end-----------
Hvad er det lige der går galt
Med venlige hilsner
Christian
P.S. det her kunne jeg sagtens lave i ASP...
| |
Kent Friis (31-05-2004)
| Kommentar Fra : Kent Friis |
Dato : 31-05-04 19:56 |
|
Den Mon, 31 May 2004 20:32:47 +0000 skrev Christian Epstein:
> Kære NG undskyld det lange kode der følger, men jeg er jo ny i det her
> og ved ikke helt hvilken del af koden det er galt med... Jeg er i gang
> med at lave en quiz, for at træne lidt i at lave funktioner, men min
> quiz vil kun vælge if funktionen... jeg tror det er fordi den tror det
> ene er en tal værdi og det andet er en tekst værdi, men jeg kan ikke
> forstå hvorfor...
Brug std::string i stedet for char[].
std::string er C++ og virker som du forventer. char[] er et levn fra
C, og virker ikke som man forventer som C++ programmør.
Mvh
Kent
--
Help test this great MMORPG game - http://www.eternal-lands.com/
| |
Christian Epstein (31-05-2004)
| Kommentar Fra : Christian Epstein |
Dato : 31-05-04 22:30 |
|
Kent Friis wrote:
> Den Mon, 31 May 2004 20:32:47 +0000 skrev Christian Epstein:
>
>>Kære NG undskyld det lange kode der følger, men jeg er jo ny i det her
>>og ved ikke helt hvilken del af koden det er galt med... Jeg er i gang
>>med at lave en quiz, for at træne lidt i at lave funktioner, men min
>>quiz vil kun vælge if funktionen... jeg tror det er fordi den tror det
>>ene er en tal værdi og det andet er en tekst værdi, men jeg kan ikke
>>forstå hvorfor...
>
>
> Brug std::string i stedet for char[].
>
> std::string er C++ og virker som du forventer. char[] er et levn fra
> C, og virker ikke som man forventer som C++ programmør.
>
> Mvh
> Kent
Hvordan er det lige jeg bruger std::string, hvis jeg bare erstatter char
[20] med std:string ( linie 'std::string Svar;' ) får jeg en undeclared fejl
/Christian
| |
Bertel Brander (31-05-2004)
| Kommentar Fra : Bertel Brander |
Dato : 31-05-04 20:04 |
|
Christian Epstein wrote:
if (Svar == "København")
> {
> cout << "Rigtigt";
Svar er et array af char's, addressen på denne sammenlignes
med addressen på "København", Hvilket vist ikke er det du ønsker.
Du vil sammenligne indholdet af Svar med indholdet af "København",
det gøres med strcmp(Svar, "København"), resultatet er 0 hvis de
to strenge er ens.
Du kan også lave svar om til en std::string (include <string>)
så kan du sammenligne med "if(Svar == "København")"
På Windows er der dog et problem med tegnsæt, ø i kommandoprompten
er ikke det samme som ø i windows
/b
| |
Christian Epstein (31-05-2004)
| Kommentar Fra : Christian Epstein |
Dato : 31-05-04 22:25 |
|
Bertel Brander wrote:
> Christian Epstein wrote:
> if (Svar == "København")
>
>> {
>> cout << "Rigtigt";
>
>
> Svar er et array af char's, addressen på denne sammenlignes
> med addressen på "København", Hvilket vist ikke er det du ønsker.
>
> Du vil sammenligne indholdet af Svar med indholdet af "København",
> det gøres med strcmp(Svar, "København"), resultatet er 0 hvis de
> to strenge er ens.
>
> Du kan også lave svar om til en std::string (include <string>)
> så kan du sammenligne med "if(Svar == "København")"
Tak for forklaringen
>
> På Windows er der dog et problem med tegnsæt, ø i kommandoprompten
> er ikke det samme som ø i windows
>
> /b
Så er det heldigt at det jo kun er til mig selv jeg laver det her, og
jeg for længst er kommet af med windows skramlet, hvertfald til
programmering...
/Christian
| |
Christian Epstein (31-05-2004)
| Kommentar Fra : Christian Epstein |
Dato : 31-05-04 22:36 |
|
Christian Epstein wrote:
> Bertel Brander wrote:
>
>> Christian Epstein wrote:
>> if (Svar == "København")
>>
>>> {
>>> cout << "Rigtigt";
>>
>>
>>
>> Svar er et array af char's, addressen på denne sammenlignes
>> med addressen på "København", Hvilket vist ikke er det du ønsker.
>>
>> Du vil sammenligne indholdet af Svar med indholdet af "København",
>> det gøres med strcmp(Svar, "København"), resultatet er 0 hvis de
>> to strenge er ens.
>>
>> Du kan også lave svar om til en std::string (include <string>)
>> så kan du sammenligne med "if(Svar == "København")"
>
>
> Tak for forklaringen
>
>>
>> På Windows er der dog et problem med tegnsæt, ø i kommandoprompten
>> er ikke det samme som ø i windows
>>
>> /b
>
>
> Så er det heldigt at det jo kun er til mig selv jeg laver det her, og
> jeg for længst er kommet af med windows skramlet, hvertfald til
> programmering...
>
> /Christian
Google var min ven, undskyld jeg nåede at spørge inden jeg søgte
/Christian
| |
Niels Dybdahl (01-06-2004)
| Kommentar Fra : Niels Dybdahl |
Dato : 01-06-04 10:17 |
|
> > På Windows er der dog et problem med tegnsæt, ø i kommandoprompten
> > er ikke det samme som ø i windows
> >
> > /b
>
> Så er det heldigt at det jo kun er til mig selv jeg laver det her, og
> jeg for længst er kommet af med windows skramlet, hvertfald til
> programmering...
På Linux kan du komme ud for at ø i nogle tilfælde er UTF-8 kodet og i andre
ISO-8859 kodet.
Niels Dybdahl
| |
Christian Epstein (01-06-2004)
| Kommentar Fra : Christian Epstein |
Dato : 01-06-04 12:27 |
|
Niels Dybdahl wrote:
>>>På Windows er der dog et problem med tegnsæt, ø i kommandoprompten
>>>er ikke det samme som ø i windows
>>>
>>>/b
>>
>>Så er det heldigt at det jo kun er til mig selv jeg laver det her, og
>>jeg for længst er kommet af med windows skramlet, hvertfald til
>>programmering...
>
>
> På Linux kan du komme ud for at ø i nogle tilfælde er UTF-8 kodet og i andre
> ISO-8859 kodet.
>
> Niels Dybdahl
>
>
Det har jeg oplevet i andre sprog før, så jeg har heldigvis sat location
rigtigt alle steder... Virker hvertfald uden problemer...
/Christian
| |
|
|