Char array in een String array laden

Status
Niet open voor verdere reacties.

robbiedoes90

Nieuwe gebruiker
Lid geworden
3 sep 2009
Berichten
4
Hallo,

Mijn probleem is als volgt. Er worden karakters ingelezen uit een invoerfile, die een woord vormen. Deze worden in een character array geladen. Zodra het hele woord ingevoerd is, dus een '\n' door de computer gelezen wordt, moet deze character array op een bepaalde plaats gezet worden in een string array. Hier een stukje code:

char kar; // het ingelezen karakter
int i = 0; // voor de lengte van het woordenboek
char woord[15] // 15 is de max lengte van het woord
int k = 0; // geeft aan hoe lang het woord is
while (! invoer.eof())
{
if (kar == '\n')
{
woordenboek = woord;
i++;
k = 0;
}
else if (('a' <= kar && kar <= 'z') || ('A' <= kar && kar <= 'Z'))
{
woord[k] = kar;
k++;
}
}
woordenboek = woord; // voor het laatste woord, waar geen '\n' achter staat.

Sorry als er enige fouten bij staan, dit is namelijk niet getest (kon ook niet), doch het principe zal wel duidelijk zijn. :)
 
Wat is je vraag?

De vraag is :) : Hoe doe je dit?

Ik heb bijvoorbeeld de regel: woordenboek = woord; Hierbij wordt het woord uit een bepaalde plaats in het character array geplaatst op een bepaalde plaats in het string array. Wat is de notatie hiervoor? Sorry voor de onduidelijkheid :)
 
Als je de file toch regel voor regel wilt uitlezen zou ik voor de functie getline() gaan. Dan laad je alles meteen in een string welke je weer in een vector van strings gooit. Een vector is een soort dynamische array, zie hier -> http://www.cplusplus.com/reference/stl/vector/. Zoiets dus:

[cpp]
#include <iostream>
#include <vector>
#include <string>
#include <fstream>

using namespace std;
int main(){
ifstream infile("c:/in.txt");
if (!infile.is_open() || !infile.good()){
cout << "Fout met openen!";
return -1;
}

vector<string> alle_regels;
string huidige_regel = "";
while (getline(infile, huidige_regel)){
alle_regels.push_back(huidige_regel);
}

cout << "er zaten " << alle_regels.size() << " regels in het bestand. Namelijk:\n";
for (unsigned i = 0; i < alle_regels.size(); i++){
cout << alle_regels << "\n";
}

cin.get();
return 0;
}
[/cpp]

In C++ is het belangrijk om the onthouden: gebruik alleen char-arrays als je echt een array met karakters wilt hebben. Niet voor strings, woorden etc etc. In mijn 4 jaar als professioneel C++ programmeur, kan ik me niet herinneren dat ik ooit echt een char-array nodig heb gehad.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan