Как в стиле си записать в бинарный файл матрицу 10x10?
Хочу записать в стиле си матрицу 10x10 в бинарный файл, чтобы в нём вместо нормальных чисел была крокозябра наподобии этой: .
Но по какой-то причине вместо крокозябры в нём записывается вот это:
1 М М2 М М21 М3 М12 М1 М7 М4 М7 М17 М М1 М6 М7 М1 М0 М6 М3 М4 М1 М6 М М3 М17 М4 М5 М5 М2 М8 М7 М2 М8 М М5 М7 М7 М5 М6 М6 М1 М6 М0 М4 М М0 М4 М1 М3 М9 М9 М9 М4 М9 М8 М М9 М8 М7 М9 М1 М1 М7 М5 М0 М3 М М9 М6 М7 М9 М4 М4 М0 М0 М7 М0 М М7 М8 М0 М1 М6 М6 М3 М4 М4 М9 М М1 М6 М9 М9 М4 М4 М8 М7 М8 М2 М М3 М9 М9 М9 М8 М8 М9 М0 М3 М0 М М
Как сделать так, чтобы во всем файле была крокозябра?
FILE* file;
int matrix[10][10] ={
{ 1 ,2 ,21, 3, 12, 1, 7, 4, 7, 17},
{1, 6, 7, 1, 0, 6, 3, 4, 1, 6},
{3, 17, 4, 5, 5 ,2 ,8 ,7 ,2, 8},
{5, 7, 7, 5, 6, 6, 1, 6, 0, 4},
{0, 4, 1, 3, 9, 9, 9, 4, 9, 8},
{9, 8, 7 ,9 ,1 ,1 ,7 ,5 ,0 ,3},
{9, 6, 7, 9, 4, 4, 0, 0, 7, 0},
{7, 8, 0 ,1 ,6 ,6 ,3, 4, 4, 9},
{1, 6, 9, 9, 4, 4, 8, 7, 8, 2},
{3, 9, 9, 9, 8, 8, 9, 0, 3, 0 } };
char nextLine[3];
sprintf(nextLine, "%c", '\n');
char tab[3];
sprintf(tab, "%c", ' ');
if (fopen_s(&file, "result.bin", "wb") == 0)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0;j < 10;j++)
{
char buf[3];
sprintf(buf, "%i", matrix[i][j]);
fwrite(buf, sizeof(char), sizeof(buf), file);
fwrite(tab, sizeof(char), sizeof(tab), file);
}
fwrite(nextLine, sizeof(char), sizeof(nextLine), file);
}
fclose(file);
}
Ответы (1 шт):
int main()
{
FILE* file;
int matrix[10][10] ={
{ 1 ,2 ,21, 3, 12, 1, 7, 4, 7, 17},
{1, 6, 7, 1, 0, 6, 3, 4, 1, 6},
{3, 17, 4, 5, 5 ,2 ,8 ,7 ,2, 8},
{5, 7, 7, 5, 6, 6, 1, 6, 0, 4},
{0, 4, 1, 3, 9, 9, 9, 4, 9, 8},
{9, 8, 7 ,9 ,1 ,1 ,7 ,5 ,0 ,3},
{9, 6, 7, 9, 4, 4, 0, 0, 7, 0},
{7, 8, 0 ,1 ,6 ,6 ,3, 4, 4, 9},
{1, 6, 9, 9, 4, 4, 8, 7, 8, 2},
{3, 9, 9, 9, 8, 8, 9, 0, 3, 0 } };
if (fopen_s(&file, "result.bin", "wb") == 0)
{
fwrite(matrix, sizeof(matrix), 1, file);
fclose(file);
}
}