cin??

Tags:    c++ diverse

Jeg har et problem, når jeg bruger "cin".
Hvis fx jeg har indsat denne kode.

#include<iostream.h>

int main()
{
int tal;
cin >> tal;
cout << "Du skrev: " <<tal;
int tal2;
cin >> tal2;
cout << "Nu skrev du: "<< tal2;
}

og man nu kom til at indtaste "24 4" i den første ville tal blive sat til 24 og tal2 til 4, fordi cin bare senere talet efter mellemrummet videre til næste cin!

eksempel:

24 4
Du skrev: 24
Nu skrev du: 4

Er der en anden kode der ikke bare sender svaret videre?



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Forstå faktisk slet ikke hvad det er du vil, men her kan du taste -->24 4 og så bliver 24 sat i variablen tal og 4 i variablen tal2

Fold kodeboks ind/udKode 


Ellers så prøv at omformulere dit spg. så kan jeg måske give det korrekte svar, hvis det andet ikke er svar nok :)

Jan Larsen
CO-owner http://www.jabo-web.com


[Redigeret d. 12/12-03 18:00:48 af Jan L]



Héj
Jeg forstår godt hvad det er du mener.....

Dette lille problem kan løses ved at bruge et char array istedet for. Dette gør at space kan slettes.

f.eks.
void main()
{
char tal1[150],tal2[150];

cout<<"Skriv tal1 : ";
cin >>tal1;
cout<<"Skriv tal2 : ";
cin >>tal2;

// Hvis du skal regne med talne konvateres disse med
// itoa

// hvis du skal samligne noget bruges "strcmp"
if(strcmp(tal1,strcmp)==0)
cout<<"Talne er ens !!!";
}

Du har ret i at hvis man køre den kode du har skrevet i dos, og først indskriver et tal og derefter trykker mellemrum og skriver et tal mere. Skrives første tal i var 1 og anden tal i var 2.....

Men dette kan løses ved at anvende char array eller stringe. Råder dig til at bruge char array. Virker altid....

Mvh
Janus S. Andersen

P.s Skriv hvis der er problemmer med det



Jeg kan prøve at give et mere realistisk bud her, hvis du ikke forstår det.

#include <iostream.h>

int menu()
{
int menuSvar;
cout << "1.Skriv hej"<<endl;
cout << "2.Skriv nej\\n-->";
cin>>menuSvar;

if(menuSvar == 1)
{
cout << "hej\\n";
}

else if(menuSvar == 2)
{
cout <<"nej\\n";
}
return 0;
}

int menu2()
{
int menuSvar;
cout << "1.Skriv HEJ"<<endl;
cout << "2.Skriv NEJ\\n-->";
cin>>menuSvar;

if(menuSvar == 1)
{
cout << "HEJ\\n";
}

else if(menuSvar == 2)
{
cout <<"NEJ\\n";
}
return 0;
}

int main()
{
int svar;
cout << "1. Menu"<<endl;
cout << "2. Menu2\\n-->";
cin>>svar;
if (svar == 1)
{
menu();
}

else if(svar == 2)
{
menu2();
}
system("PAUSE");
return 0;
}

prøv at compile det og så når start menuen kommer siger vi du vil ind i menu2 så du skriver 2, men du kommer til at skrive
"2 1" så vil den slet ikke nå at spørge dig i menu2, den vil bare bruge tal nr 2(1)

jeg håber du forstod det nu, at hvis man laver mellemrum i et svar vil det næste spørgsmål blive besvaret med det der er efter mellemrummet.



t