Dobry, mam takie coś.
string zarzadzenie_plikami::zapis_lub_odczyz_z_pliku(unsigned long int rozmiar, string zapis)
{
if (czyotworzono) /*Wartość logiczna true/false*/
{
char* memblock = new char[rozmiar];
if (tryb_otwarcia) /*Wartość logiczna true/false*/
{
/*odczyt danych, nie ma zwiazku z dalsza czescia kodu*/
}
else
{
for (unsigned long int i = 0; i < zapis.length(); i++) memblock[i] = zapis[i];
(this->zapis).write(memblock, rozmiar); /*Odwoluje się do zmiennej klasowej, która to zapis jest zmienną typu ofstream*/
}
delete memblock;
}
return zapis;
}
Ogólnie tym kawałkiem kodu próbuje, przepisać z zmiennej string
(którą mam podaną w parametrach) do memblock
a. Robię po to, ponieważ funkcja file.write
wymaga parametru char *
, a próba konwersji (this->zapis).write(zapis.c_str(), rozmiar);
, nic nie daje.
Nawiązując do tematu, mam problem z danymi
String jako: "\x1\0\0\0\0\0\0\x1\0"
Jeśli zapiszę \x1
do memblocka[0]
- to jeszcze działa.
Ale gdy wykonam operację memblock[1] = zapis[i] = \0
. To próba przypisania czegokolwiek do tej zmiennej spełza na niczym. Poszukałem trochę w internecie, że "\0"
i '\0'
, to są dwa osobne łańcuchy, ponieważ pierwszy będzie to pusty łańcuch, drugi będzie znakiem \0
, czyli 0
. Ale jak zrobić to na zmiennych, to nie mam pojęcia.