В файл выводятся кракозябры - C (СИ)
Формулировка задачи:
Добрый вечер
В книге у Г.Шилдта написано что с помощью fwrite можно выводить в файл структуры, например есть код
вот в этом месте поидеи должна записываться структура
но в файл выводятся кракозябры, как исправить и почему это происходит(без локали тоже самое)?
Спасибо
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <locale.h>
#define n 15
static const char* filename = "statistic.dat";
struct information {
char user[32];
int array[n];
int iterations;
};
int main() {
int i;
struct information info;
info.iterations = 0;
setlocale(LC_ALL, "Russian");
int *p_array = info.array;
for (int i = 0; i < n; ++i)
*p_array++ = i;
for(i = 0; i < n; i++) {
printf("%4d ", info.array[i]);
}
printf("\n");
FILE* file = fopen(filename, "w+");
printf("Введите имя\n");
scanf("%s", info.user);
for(i = 0; i < n; i++) {
printf("%4d ", info.array[i]);
}
printf("\n");
FILE* file = fopen(filename, "wb+");
fwrite(&info, sizeof(struct information), 1, file);
system("PAUSE");
return 0;
}fwrite(&info, sizeof(struct information), 1, file);
Решение задачи: «В файл выводятся кракозябры»
textual
Листинг программы
FILE* file = fopen(filename, "w+");
Объяснение кода листинга программы
- В коде открывается файл с помощью функции fopen.
- Файл открывается для записи и чтения с помощью параметра
w+. - Переменная file содержит указатель на открытый файл.