Vraag & Antwoord

Programmeren

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

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[i] == ' '); ..... } 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 &lt;iostream.h&gt; int main(void) { const int ArSize = 20; char name[ArSize]; cout &lt;&lt; &quot;Geef je volledige naam:n&quot;; cin.getline(name, ArSize); cout &lt;&lt; &quot;nJouw naam is &quot; &lt;&lt; name &lt;&lt; &quot;n&quot;; 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. <font size=-1>[ Dit Bericht is bewerkt door: DarkScribe op 2002-02-12 19:03 ]</font>
  • [quote:84770ca669] string regel; for (int i=0; i&lt;4; i++) { cin &gt;&gt; regel; } [/quote:84770ca669] Ja, nogal wiedes, je kent de structuur van de for loop? &lt;begin;voorwaarde;actie&gt; 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&gt;=4; i++) { cin &gt;&gt; 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&lt;4)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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