Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

C++ Cin. Hoe kun je een string inlezen zonder dat-ie de spat

DarkScribe
5 antwoorden
  • Ik zit een console-applicatie te programmeren in C++ en ben een beginner.

    Ik wil een regel tekst inlezen in een string vanaf een toetsenbord-input. ik gebruik (versimpeld) het volgende:

    string regel;
    for (int i=0; i<4; i++)
    { cin >> regel;
    }

    Het lijkt gek, maar ik wil dat die regel-string vijf keer overschreven wordt door wat de gebruiker intikt. Maar wat gebeurt er? De spaties worden als regelovergangen gezien !!! Dus als de gebruiker 5 woorden intikt, en dan "enter doet", is de lus al voorbij ! Hoe voorkom ik dit ?
  • Ik begrijp niet helemaal wat je nou bedoelt, en nog veel minder waarom je een for-loop gebruikt.

    Is het niet veel makkkelijker om de hele regel in 1 keer in te lezen, en daarna deze string op te knippen in stukjes dmv de spatie

    In pseudocode:
    String regel;
    cin >> regel;

    for (i = 0; i<= length(regel); i++) {
    if (regel == ' ');
    …..
    }

    Op deze manier lijkt het mij wat beter te doen!
  • Een goede manier is om [i:88dd711b7f]cin.getline(variable, stringlength)[/i:88dd711b7f] te gebruiken. Voorbeeld:

    [code:1:88dd711b7f]#include <iostream.h>

    int main(void)
    {

    const int ArSize = 20;
    char name[ArSize];

    cout << "Geef je volledige naam:n";
    cin.getline(name, ArSize);
    cout << "nJouw naam is " << name << "n";

    return 0;
    }[/code:1:88dd711b7f]
    Cin.getline leest de hele regel, inclusief de spaties, tot aan het moment dat je de enter toets indrukt. Hoop dat je hier wat aan hebt.

    _________________
    I used to have an open mind but my brains kept falling out.

    [ Dit Bericht is bewerkt door: DarkScribe op 2002-02-12 19:03 ]
  • [quote:84770ca669]
    string regel;
    for (int i=0; i<4; i++)
    { cin >> regel;
    }
    [/quote:84770ca669]

    Ja, nogal wiedes, je kent de structuur van de for loop?
    <begin;voorwaarde;actie>

    je stelt i op 0, en de voorwaarde is dat i kleiner moet zijn als vier, dat is hij bij jou aan het begin al, hij zal deze lus dus maar 1 keer doorlopen. Als je hem 5 keer wilt doorlopen:

    string regel;
    for (int i=0; i>=4; i++)
    { cin >> regel;
    }

    GreetzZzz

  • Bedankt, DarkScribe, jou methode heb ik gebruikt.

    w.roosenburg:
    Dat met die lus klopt wel hoor. Hij loopt continu, totdat die voorwaarde niet meer klopt. (i<4)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.