C++ -ban hogyan lehet eltárolni szövegfájlból adatokat, ha nem tudom, hogy hány sor van?
Eddig mindig sikerült beolvasni, de belefutottam egy olyan feladatba, ahol nem tudom, hány sor van.
A txt-ben így vannak az adatok(hónap,nap,vezetéknév,keresztnév)
Pl.:
02 12
Kovács András
Hujber Ferenc
Hajós András
...(szóval itt akárhány soron keresztül lehet név)
03 22
Nagy Feró
Varga Zoltán
05 08
Keszthelyi Gergely
Szóval hogy tudnám letárolni ezeket?
#include <iostream>
#include <fstream>
#include <vector> // Include the vector class.
int main() {
using namespace std;
int i;
string line;
vector<string> lines; // List of string objects.
ifstream file;
file.open("adatok.txt");
if (file.is_open()) {
while (file.peek() != EOF) {
getline(file, line);
lines.push_back(line); // Add new item to the end of the list.
}
file.close();
}
for (i = 0; i < lines.size(); i++) {
cout << lines[i] << endl;
}
return EXIT_SUCCESS;
}
Köszi, de vektort nem tanultunk.
Nem lehet egy struktúrás tömbbel megoldani?
Pointeres dinamikus tömbbel is meg tudod csinálni, csak nem egyszerű és valószínűleg azt sem tanultátok még.
Statikus méretű tömbbel szerintem csak úgy tudod megcsinálni, ha jól fölébecsülöd a sorokszámát. Például deklarálsz egy 1000 vagy 10.000 vagy 100.000 vagy még több elemű tömböt.
A C++ szabvány nem enged statikus tömböt változóból deklarálni. (Némelyik fordító engedi, de az nem szabványos.) Szóval ha semmilyen dinamikus megoldást nem használhatsz, akkor nehéz lesz.
Mit jelent az, hogy "eltárolni"? Esetleg adatbázisba pakolni..? :)
Nem tanultuk a new operátort. Úgy kelle tárolni, hogy tudjak műveleteket végezni azokkal a nevekkel amik egy adott hónaphoz és naphoz tartoznak. A hónapok és napok ismétlődhetnek a txt-ben, és nincsenek sorba rendezve.
Pl.:
01 15
Sallai Péter
Jónás Sándor
02 28
Villás Ferenc
01 15
Kepics Ádám
Szóval ha a január 15-ödikéhez tartozó nevekkel tudjak műveleteket végezni, és kilistázni (ez esetben így: Kepics Ádám, Sallai Péter, Jónás Sándor).
Csak struktúrát tanultunk, és tömböket. Szóval elvileg azzal kellene,de akkor csak vektorral lehet?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!