Avatar billede motz Nybegynder
20. november 2003 - 14:07 Der er 13 kommentarer og
1 løsning

whitespace i string name

jeg har en variabel af typen

string name;

jeg skal brugerindtaste et fornavn+ whitespace+efternavn ind i den.
så når du skriver cout >> name ; står der f.eks.:

Hans Hansen

Det skal laves uden en fastsat længde.
Avatar billede medions Nybegynder
20. november 2003 - 14:08 #1
cout << "Hans" + " " + "Hansen";

er det sådan du  mener?

//>Rune
Avatar billede medions Nybegynder
20. november 2003 - 14:08 #2
hov..

cout << "Hans" << " " << "Hansen";

//>Rune
Avatar billede motz Nybegynder
20. november 2003 - 14:11 #3
Nej der skal læses fornavn og efternavn ind i strengen fra tastaturet, men problemet er, at cin stopper indlæsning ind i en string når der trykkes space
Avatar billede medions Nybegynder
20. november 2003 - 14:13 #4
Ahh okay, nej, det mener jeg ikke man kan undgå :(

//>Rune
Avatar billede arne_v Ekspert
20. november 2003 - 14:19 #5
char fullname[100];
cin.getline(fullname,sizeof(fullname));

Læser en hel linie ind inkl. mellemrum.
Avatar billede motz Nybegynder
20. november 2003 - 14:25 #6
Ja, men arrayet må
ikke være statisk.
Avatar billede motz Nybegynder
20. november 2003 - 14:28 #7
kan man bruge noskipws??
på en eller anden måde.
Avatar billede arne_v Ekspert
20. november 2003 - 14:31 #8
Hvorfor ikke ?

Du kan da altid kopiere det over i et array af den rigtige størrelse og
så deallokere det midlertidige array (hvis new'et) elle rlade det gå
ud af scope (hvis lokal variabel).
Avatar billede thomas_nj Nybegynder
20. november 2003 - 14:32 #9
Er detteher hvad du søger?

#include <iostream>
#include <cstdlib>
#include <vector>
#include <string>
#include <conio.h>
using namespace std;

int main()
{
    string name;
    char a='a';
    cout<<"Hvad hedder du"<<endl;
   
    while(a!='\r')
    {
    a=getch();
    cout<<a;
    name.push_back(a);
    }
    cout<<name<<endl;
   
    system("pause");
    return 0;
}
Avatar billede motz Nybegynder
20. november 2003 - 14:34 #10
Det er selvfølgelig rigtigt!!
Avatar billede thomas_nj Nybegynder
20. november 2003 - 14:35 #11
hvad er rigtigt?? hvad er det helt præcis du vil have??
Avatar billede thomas_nj Nybegynder
20. november 2003 - 14:38 #12
Vent brug ikke mit der er en fejl!!! Man kan ikke bruge backspace. Meget dum fejl
Avatar billede arne_v Ekspert
20. november 2003 - 14:58 #13
Prøv og erstat:

a=getch();
cout<<a;
   
med:

a = cin.get();
Avatar billede arne_v Ekspert
20. november 2003 - 15:01 #14
Og:

a!='\r'

med:

a!='\n'
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