Операция fwrite заполняет файл символами - C (СИ)
Формулировка задачи:
Здравствуйте! При помощи fwrite пытаюсь заполнить текстовый файл Dictionary, но он заполняется различными символами, каждый раз новыми. Мне ума не хватает понять в чем дело, может быть вы сможете найти ошибку?
Весь код:
Основная проблема:
Заранее искренне благодарю!
#include <stdio.h> #include <iostream> #include <conio.h> #include <string.h> #include <cstdlib> #include <locale> #include <ctype.h> int main() { char sign,filename[80],word[80]; char **dictionary=new char*[50]; int *count=new int[50]; int *mas=new int[50]; for (int i=0;i<50;i++) { dictionary[i]=new char[50]; count[i]=0; mas[i]=i; } setlocale(LC_ALL,"rus"); int flag; do { int i=0,cycle=0; flag=1; FILE *f; printf ("Введите имя файла: "); fflush (stdin); gets(filename); f=fopen(filename,"rt"); if (f) { while(!feof(f)) { fscanf(f,"%s",word); for (int k=0;k<=cycle;k++) if (strcmp(dictionary[k],word)==0) { count[k]++; break; } else if (k==cycle) { strcpy(dictionary[k],word); cycle++; count[k]++; break; } memset(word,0,sizeof(word)); } fclose(f); for(int i=0; i<cycle-1; i++) for(int j=i+1; j<cycle; j++) if(count[j]>count[i]) { int k; k=count[i]; count[i]=count[j]; count[j]=k; k=mas[i]; mas[i]=mas[j]; mas[j]=k; } for (int i=0; i<10; i++) { printf("%s - ",dictionary[mas[i]]); printf("%d\n",count[i]); } for (int i=0; i<9; i++) for (int j=i+1; j<10; j++) if (strcmp(dictionary[j],dictionary[i])<0) { int k; k=mas[i]; mas[i]=mas[j]; mas[j]=k; } FILE *f; f=fopen("Dictionary.txt","wt"); for (int i=0; i<10; i++) fwrite(&dictionary[mas[i]], sizeof(dictionary[mas[i]]), 1, f); fclose(f); } else { printf("\nТакого файла не существует! \n"); printf("\Нажмите любую клавишу"); fflush (stdin); getch(); system ("cls"); flag=0; } } while (!flag); for (int i=0;i<50;i++) delete [] dictionary[i]; delete [] dictionary; delete [] count; getch(); }
FILE *f; f=fopen("Dictionary.txt","wt"); for (int i=0; i<10; i++) fwrite(&dictionary[mas[i]], sizeof(dictionary[mas[i]]), 1, f); fclose(f);
Решение задачи: «Операция fwrite заполняет файл символами»
textual
Листинг программы
struct element { int atnumber, numberper, numbergroup, electrons; char nameelem[10], chimicalname[3]; float atmassa; };
Объяснение кода листинга программы
- Объявлена структура
element
с полями:atnumber
,numberper
,numbergroup
,electrons
,nameelem
,chimicalname
,atmassa
. - Далее идет заполнение структуры
element
данными. - После этого происходит запись данных из структуры в файл с помощью функции
fwrite
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д