Avatar billede Daniel.E Praktikant
22. august 2004 - 22:58 Der er 5 kommentarer og
1 løsning

underlige opførsen med cin.get

jeg har undret mig over en lille ting i C++

#include <iostream.h>


void fnc () {
    char buf[10];
    cin.get(buf,10);
    cout << buf;

}

int main() {
  fnc();
  fnc();
  return 0;
}

hvorfor er det lige sådan at man kun får lov til at indtaste en gang og ikke to som ellers var meningen ?
Avatar billede arne_v Ekspert
22. august 2004 - 23:01 #1
Prøv med getline i stedet for get !
Avatar billede Daniel.E Praktikant
22. august 2004 - 23:05 #2
hvorfor opføre get sig sådan ?
Avatar billede arne_v Ekspert
22. august 2004 - 23:09 #3
get læser tilsyneladende fra samme linie

prøv med get at give den input 012345678abc
Avatar billede tosssen Nybegynder
22. august 2004 - 23:32 #4
Se her:

http://www.cplusplus.com/ref/iostream/istream/get.html

get læser til linjeskift '\n', men fjerner ikke '\n' fra input streamen, så næste gang get kaldes vil den ikke nå at læse noget fordi der er et '\n' først i streamen. getline fjerner '\n' fra input streamen og løser derved dit problem (som arne_v allerede har skrevet)
Avatar billede Daniel.E Praktikant
26. august 2004 - 00:24 #5
arne_v du skal også give et svar
Avatar billede arne_v Ekspert
26. august 2004 - 10:09 #6
Øh - du har allerede accepteret et andet svar
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