Ik heb geen heel goed inzicht wat je allemaal hebt geprogrammeerd, maar één ding valt me wel op.
De functie fillString heeft als returnwaarde een string (een C++ string), maar je geeft uiteindelijk de variabele result terug: een char[] (array van characters).
Sowieso is het misschien handiger om in het programma meer met C++ strings te werken en minder met char* (C-string). Behalve als dat de opdracht van school is natuurlijk.
Je geeft goede raad maar daar ligt het probleem volgens mij niet. In C++ wordt een array van characters gelijkgesteld aan een String.
Je kan uiteindelijk ook:
char woord[5] = {'a','b','c','d','e'};
string tweedeWoord = woord
doen.
Ik krijg dus drie waarden binnen. Dat is één String, en twee Integers.
De bedoeling is dat deze naar een bestand geschreven worden. Maar ze moeten eerst allemaal omgevormd worden tot een vaste lengte. Als ze te kort zijn, moeten ze dus opgevuld worden met spaties tot ze aan de gewenste lengte komen.
Die String omvormen is makkelijk genoeg en verloopt probleemloos.
Als ik de Integers wil omvormen, gooi ik ze via de functie 'sprintf' in een array van characters van 4 bytes.
Dan geef ik ze ook aan mijn fillString functie. De integers moeten tot 4 characters opgevuld worden (ze zijn oftewel 2 oftewel 3 characters groot). Maar daar loopt het dus fout. De omvorming heb ik al gecontroleerd. Deze verloopt juist.
In totaal wordt per lijn (Een String en twee Integers) drie keer de fillString methode aangeroepen.
Telkens wordt het resultaat van de methode fillString toegevoegd aan een al bestaande String, met de volgende code:
"output += fillString(omvang, 4);"
Zodra output een volledige lijn bevat, schrijf ik die weg naar het bestand.
Mijn vermoeden is dus dat er iets foutloopt in die lijn waar ik aan 'output' concateneer, maar ik zou niet weten wat.