В файл записывается не то, что нужно - C (СИ)
Формулировка задачи:
Проблема в том,что при явной инициализации массива - все идет гладко:
int l; FILE *fp; char m[100]; system("cls"); if((fp=fopen("d:\\Dat.txt", "w+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } gets(m); l=strlen(m); fwrite(&m, sizeof(char), l, fp); rewind(fp); fread(&m, sizeof(char), l, fp); printf("%s\n",m); fclose(fp);
Но если под массив выделяешь динамическую память- в файл пишет такой бред!!!
int l,n; FILE *fp; char *m; system("cls"); if((fp=fopen("d:\\Dat.txt", "w+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } scanf("%d",&n); m=new char[n]; scanf("%s",m); l=strlen(m); fwrite(&m, sizeof(char), l, fp); rewind(fp); fread(&m, sizeof(char), l, fp); printf("%s\n",m); fclose(fp); delete[]m;
В чем проблема, Умные товарищи, помогите пож!!!
Решение задачи: «В файл записывается не то, что нужно»
textual
Листинг программы
fwrite(m, sizeof(char), l, fp); rewind(fp); fread(m, sizeof(char), l, fp);
Объяснение кода листинга программы
- В начале кода объявляется файл
m
типа char с размеромl
. - Далее, с помощью функции
fwrite
, в файлm
записывается содержимое переменнойm
с шагом размераsizeof(char)
. - Затем, с помощью функции
rewind
, происходит возврат в начало файлаfp
. - И наконец, с помощью функции
fread
, из файлаm
считывается содержимое переменнойm
с шагом размераsizeof(char)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д