anoniem Geplaatst: 5 augustus 2008 Delen Geplaatst: 5 augustus 2008 Beste mensen van Computer Totaal, Ik ben net een paar weken bezig met c++ en ik was bezig met een programma waarin ik een 2 kolommen wil laten zien. De gebruiker geeft zelf aan welke gegevens er in de kolommen komen. Maar wanneer ik het kolom wordt weergegeven zit niet het 2e kolom onder elkaar. Want ik schrijf een for functie: [code:1:8fb6e20b4b]for(int a_1;a_1<5;a_1++) { for(int a_2;a_2;a_2++) { cout<<struct_dier[a_1][a_2].soort<<" "<<struct_dier[a_1][a_2].naam<<endl; } } [/code:1:8fb6e20b4b] Hierbij is struct_dier een tweedimensionale array, met string soort en string naam Zoals je ziet is het aantal spatie na 'soort' gelijk. Hierbij komt de tweede rijtje niet keurig onder elkaar. En ik heb geprobeert om een functie te schrijven die het woord grote herkent en het juiste aantal spatie weergeeft. Maar je mag niet dit doen van VS2005 [code:1:8fb6e20b4b]cout<<aantal_spatie(a_1)<<endl;[/code:1:8fb6e20b4b] Waarbij aantal_spatie een void functie. Ik hoop dat iemand mijn probleem begrijpt. Bvd. Pouja Quote Link naar reactie
anoniem Geplaatst: 6 augustus 2008 Auteur Delen Geplaatst: 6 augustus 2008 Ik heb de probleem opgelost, ik snap niet dat ik het meteen zag. Ik heb het zo opgelost: [code:1:52fbf916e7]cout<<"tekst.......";aantal_spatie(waarde);cout<<"vervolg tekst..."<<endl; [/code:1:52fbf916e7] Quote Link naar reactie
anoniem Geplaatst: 6 augustus 2008 Auteur Delen Geplaatst: 6 augustus 2008 [quote:54a943b95a="Pouja"]Zoals je ziet is het aantal spatie na 'soort' gelijk. Hierbij komt de tweede rijtje niet keurig onder elkaar. En ik heb geprobeert om een functie te schrijven die het woord grote herkent en het juiste aantal spatie weergeeft. Maar je mag niet dit doen van VS2005 [code:1:54a943b95a]cout<<aantal_spatie(a_1)<<endl;[/code:1:54a943b95a] Waarbij aantal_spatie een void functie.[/quote:54a943b95a]Deze oplossing zou moeten werken als u aantal_spatie een functie maakt die een char* of std::string teruggeeft met als inhoud een aantal spaties en het nul karakter. Maar er is een betere methode om twee kolommen onder elkaar te krijgen. Hiervoor kunt u gebruik maken van de functies in het header-bestand <iomanip>. Hieronder staat een voorbeeld:[code:1:54a943b95a]std::cout << "Tekst 9" << " " << "Kolom 2 van tekst 9" << std::endl; std::cout << "Tekst 10" << " " << "Kolom 2 van tekst 10" << std::endl << std::endl; std::cout << std::left << std::setw( 10 ) << "Tekst 9" << " " << std::left << std::setw( 21 ) << "Kolom 2 van tekst 9" << std::endl; std::cout << std::left << std::setw( 10 ) << "Tekst 10" << " " << std::left << std::setw( 21 ) << "Kolom 2 van tekst 10" << std::endl;[/code:1:54a943b95a][i:54a943b95a]std::setw()[/i:54a943b95a] bepaald de breedte van de kolom, [i:54a943b95a]std::left[/i:54a943b95a] zorgt ervoor dat de kolom links wordt uitgelijnd. Indien u [code:1:54a943b95a]using namespace std;[/code:1:54a943b95a] gebruikt kunt u [i:54a943b95a]std::[/i:54a943b95a] weghalen. Quote Link naar reactie
anoniem Geplaatst: 6 augustus 2008 Auteur Delen Geplaatst: 6 augustus 2008 Dank je wel M Kelder, dat scheelt toch weer een functie :D . Zo te zien heeft c++ heel wat libarys, met heel veel handige functies. Ik gebruikt alleen[code:1:c02352a2a1]using namespace std;[/code:1:c02352a2a1] Aangezien ik nog niet beland ben bij de hoofdstuk van namespace. Bedankt voor alles Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen