c++ probleem

Status
Niet open voor verdere reacties.

landoo7

Gebruiker
Lid geworden
9 mei 2010
Berichten
10
ik heb net mijn tweede programma geschreven met c++ sinds lang en er is alweer iets mis mee:(
volgens mij werkt het programma op zich wel goed, maar ik versta maar niet hoe je het programma laat wachten totdat je op enter duwt:eek:
normaal zou het moeten gaan met volgende lijnen, maar ik versta ze eerlijk gezegd niet:
char myline[100];-->dat dit een string is weet ik wel:D
cin.getline(myline,100);

is er iemand die mij kan helpen a.u.b.?

dit is de volledige code
//het doel van dit progr. is om alle nummers tot een bep. gekozen te tonen en dit met 10 per lijn

#include <iostream>
using namespace std;

int main()
{
int stop,line, column, total;
char myline[100];
cout<<"Tot welk nummer wilt u weergeven?";
cin>> stop;
line=0;
total=0;

//total= 10* line(10 getallen per lijn)+column
//als total gelijk is aan de stop-waarde dan stoppen

for (stop=0; stop>total;)
{//stop-loop


//volgende loop toont de 10 getallen per lijn
for(column=1; column<10;column++)
{
total=10*line+column;
cout<<total;
cout<<"...";

}
line++;

}//stopp-loop


cin.getline(myline,100);
return 0;

}
 
[cpp]
char myline[100];
cin.getline(myline,100);
[/cpp]

Dat is veel te ingewikkeld en onnodig. Vervang dit door
[cpp]cin.get();
[/cpp]
 
Laatst bewerkt:
bedankt voor de tip, maar het heeft niet veel geholpen, wil je a.u.b. eens het programma bekijken en zeggen waarom het niet werkt
#include <iostream>
using namespace std;

int main()
{
int stop,line, column, total;

cout<<"Tot welk nummer wilt u weergeven?";
cin>> stop;
line=0;
total=0;

//total= 10* line(10 getallen per lijn)+column
//als total gelijk is aan de stop-waarde dan stoppen

for (stop=0; stop>total;)
{//stop-loop


//volgende loop toont de 10 getallen per lijn
for(column=1; column<10;column++)
{
total=10*line+column;
cout<<total;
cout<<"...";

}
line++;

}//stopp-loop


cin.get();
return 0;

}
 
bedankt voor de tip, maar het heeft niet veel geholpen, wil je a.u.b. eens het programma bekijken en zeggen waarom het niet werkt
[cpp]
#include <iostream>
using namespace std;

int main()
{
int stop,line, column, total;

cout<<"Tot welk nummer wilt u weergeven?";
cin>> stop;
line=0;
total=0;

//total= 10* line(10 getallen per lijn)+column
//als total gelijk is aan de stop-waarde dan stoppen

for (stop=0; stop>total;) <----- hierzo
{//stop-loop


//volgende loop toont de 10 getallen per lijn
for(column=1; column<10;column++)
{
total=10*line+column;
cout<<total;
cout<<"...";

}
line++;

}//stopp-loop


cin.get();
return 0;

}[/cpp]
Het kan aan mij liggen, maar volgens mij heb je daar een argument te weinig voor de for loop
 
ik zal het eens bekijken, maar ik dacht dat het geen kwaad kon.
Hij gaf trouwens geen error, of heeft hij niet altijd een fout aan?
 
hij blijft ten minste niet in een lus hangen, maar hij geeft gewoon een korte flash
nadat de loop is begonnen en sluit af.
Dat doet me denken dat het toch iets te maken heeft met de plaats van cin.get()
 
[cpp]for (stop=0; stop>total;) [/cpp]
Dit klopt niet helemaal denk ik. Eerst vraag je naar de waarde voor 'stop', dus bij
[cpp]cin >> stop[/cpp]
en daarna vul je zelf voor stop 0 in. Misschien moet je nog eens de volgorde overkijken.
 
inderdaad, ik heb nu met jouw hulp mijn programma uitgebreid.

Maar als ik het programma draai dan gaat het niet zoals ik het wil,
hij slaat telkens getallen over en daarnaast krijg ik niet de opmaak die ik wil
namelijk:
1...2...3...4...5...6...7...8...9...10...
11...12...14...15...16...17...18...19...20...
21... enzovoort (zie bijlage om te zien wat ik krijg)
en hier is de code:


#include <iostream>
using namespace std;

int main()
{
int stop,line, column, total;

cout<<"Tot welk nummer wilt u weergeven?";
cin>> stop;
line=0;
total=0;

//total= 10* line(10 getallen per lijn)+column
//als total gelijk is aan de stop-waarde dan stoppen

for (line=0; stop>total;line++)
{//stop-loop: draait een kleine loop per lijn en springt dan naar volgende lijn


//volgende loop toont de 10 getallen per lijn
for(column=1; column<10;column++)
{
total=10*line+column;
cout<<total;
cout<<"...";

}


}//stop-loop


char exit;
for (exit='N';exit!='Y'&&exit!='y';)
{
cout<<"Exit?Y/N";
cin.get();
cin>>exit;

}




return 0;
}
 

Bijlagen

  • Naamloos.png
    Naamloos.png
    97,5 KB · Weergaven: 52
Zoals je misschien hebt opgemerkt slaat ie steeds de tienvouden over, dus 10, 2x10, 3x10 enz.
Ik ben zelf niet zo goed in die logica problemen, dus ik haak hier af :( Maar iemand neemt het vast wel van me over :P
 
toch zeer erg bedankt, je hebt al heel goed op weg geholpen, want ik ben een complete beginner.:thumb:
 
ondertussen heb ik al een deel van mijn vraag kunnen oplossen:)
t was eigenlijk veel te simpel, hij sloeg telkens de tientallen over en ik moest dus gewoon <10 vervangen door <11, zodat de loop een keer meer wordt doorlopen.
Maar iets wat je waarschijnlijk maar kan weten als je goed met c++ kan werken is hoe ik de opmaak verandert...
 
er zou een enter moeten komen na elke 10 getallen, maar hoe ik dat de pc laat typen weet ik niet, normaal bestaan daar commando's voor onder cout als ik mij dat goed herinner, maar hoe ze gaan weet ik niet meer. Kan iemand mij er de belangrijkste van geven.
 
[cpp]endl;[/cpp]
is een manier om een 'enter' te simuleren, net als
[cpp]\n[/cpp]
 
bedankt, ik kan nu weer een eind weg met de info die ik heb.:thumb::D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan