Czy klasa ofstream ma limit znaków, jaki może przyjąć do zapisu?

0

Dzień dobry.

Zapisuję duży plik (trochę ponad 1 GB). Zapisują mi się wszystkie linie, poza dwoma ostatnimi, które są jakby ignorowane. Myślałem, że mam błąd w programie i to moje instrukcje powodują, że nie generują mi się wszystkie dane i stąd problem. Jednak sprawdziłem, dane są w zmiennej przy zapisie. To ofstream ma jakby limit danych do zapisu. Inaczej tego nie potrafię wyjaśnić. Nasiedziałem się nad debugiem ponad 3h.

Czy jest jakiś limit w g++ i jeżeli tak, to jak go mogę zwiększyć (np. do 2 GB)? A może to limit systemu? (Windows 10 Pro)

Proszę o pomoc.
Dziękuję
Michał

PS. Jakby kogoś interesowało, to za zapis odpowiadają te instrukcje:

if (nextLineNewFile.length() > 1000000)
{
	nextLineNewFile[nextLineNewFile.length() - 1] = ';';
	fout << "INSERT INTO `forum_posts` VALUES " << nextLineNewFile << endl;
	
	nextLineNewFile = "";
}

// i później

if (nextLineNewFile.length() > 0)
{
	nextLineNewFile[nextLineNewFile.length() - 1] = ';';
	fout << "INSERT INTO `forum_posts` VALUES " << nextLineNewFile << endl;
	
	nextLineNewFile = "";
}

OK, już znalazłem.
Miałem w innym miejscu fout.close();, w miejscu, w którym go nie powinno być, przy końcu odczytu i natrafieniu na koniec jednego z przetwarzanych plików. Już działa. Dzięki :D

0

TAK:

sizeof(streampos)

Oile wcześniej nie skończy się miejsce na dysku lub w pamięci

1 użytkowników online, w tym zalogowanych: 0, gości: 1