При записи через fwrite_raw в файл пишутся какие то случайные цифры
- Код: Выделить всё
Write kek a 1 2 3
Write kek o 4 5 6
Write kek k 7
Read kek a 57484664 57482376 1748973404
Read kek o 49138368 6 9629272
Read kek k 57501544
- Код: Выделить всё
Write kek a 1 2 3
Write kek o 4 5 6
Write kek k 7
Read kek a 1 2 3
Read kek o 4 5 6
Read kek k 7
- Код: Выделить всё
#include <amxmodx>
new g_Kekfile[255];
public plugin_init()
{
get_localinfo("amxx_configsdir", g_Kekfile, charsmax(g_Kekfile))
add(g_Kekfile, charsmax(g_Kekfile), "/test.bin")
test_num()
delete_file(g_Kekfile)
}
public test_num()
{
enum bla
{
a[3],
o[3],
k
}
static kek[bla] =
{
{ 1, 2, 3 },
{ 4, 5, 6 },
7
}
static f; f = fopen(g_Kekfile, "wb+")
if (!f) set_fail_state("kek not kek!")
server_print("Write kek a %d %d %d", kek[a][0], kek[a][1], kek[a][2])
server_print("Write kek o %d %d %d", kek[o][0], kek[o][1], kek[o][2])
server_print("Write kek k %d", kek[k])
//fwrite_raw(f, kek, sizeof kek, BLOCK_INT)
fwrite_blocks(f, kek, sizeof kek, BLOCK_INT)
fseek(f, 0, SEEK_SET)
// fread_raw(f, kek, sizeof kek , BLOCK_INT)
fread_blocks(f, kek ,sizeof kek, BLOCK_INT)
server_print("Read kek a %d %d %d", kek[a][0], kek[a][1], kek[a][2])
server_print("Read kek o %d %d %d", kek[o][0], kek[o][1], kek[o][2])
server_print("Read kek k %d", kek[k])
fclose(f)
}
Добавлено спустя 4 минуты 54 секунды:
Пробовал записывать как Вы должны зарегистрироваться, чтобы видеть ссылки.
- Код: Выделить всё
fwrite_raw(f, kek[0], sizeof kek[] ...
fwrite_raw(f, kek[0], sizeof kek ...
Результат либо тот же, либо sizeof возвращает 1 вместо 7 и записывается только первая часть опять же из рандомного набора цифр