Avatar billede thecokeguy Nybegynder
02. februar 2007 - 15:20 Der er 3 kommentarer og
1 løsning

Strings og spaces

Hej...

Jeg sidder og roder med lidt C++, jeg har skrevet flg.:

#include <isostream>
#include <string>

int main()
{
  std::string name;
  std::cin >> name;
  std::cout << "Hej " << name << std::endl;

  return 0;
}

Den virker også fint. Problemet ligger i at når jeg f.eks. skriver "a og b", går den over i et uendeligt loop.

...Jeg tror det noget at gøre med mellemrummene, det virker nemlig uden.

Hvad kan jeg gøre ved det?

På forhånd tak...
Avatar billede arne_v Ekspert
02. februar 2007 - 15:32 #1
jeg kan ikke tro at den viste kode gaar i uendeligt loop

men muligvis skal du bruge getline fremfor >> til at laese med
Avatar billede bertelbrander Novice
02. februar 2007 - 20:36 #2
>> operatoren stopper når den kommer til en space karakter.

Brug getline:
#include <iostream>
#include <sstream>
int main()
{
  std::string S;
  while(std::getline(std::cin, S))
      std::cout << "Hello: " << S << std::endl;
}
Avatar billede thecokeguy Nybegynder
02. februar 2007 - 21:59 #3
hmm.. getline hopper den let og elegant over og sætter strengen til "". Kan det have noget at gøre med at jeg kører Visual C++ 2005?
Avatar billede thecokeguy Nybegynder
02. februar 2007 - 22:38 #4
fandt det selv...

skulle bare kalde std::cin.ignore(); før getline... tak for deltagelsen.
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