/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409076
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste