#include <stdio.h>
#include <string.h>
struct Substance {
char name[50];
float specificWeight;
int conductivity;
};
int main() {
FILE *f;
struct Substance subs[100];
int n, i;
printf("Введите количество веществ: ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("\nВещество %d:\n", i+1);
printf("Название: ");
scanf("%s", subs[i].name);
printf("Удельный вес: ");
scanf("%f", &subs[i].specificWeight);
printf("Проводимость (1-проводник, 2-полупроводник, 3-диэлектрик): ");
scanf("%d", &subs[i].conductivity);
}
f = fopen("substances.txt", "w");
if(f == NULL) {
printf("Ошибка создания файла!\n");
return 1;
}
fprintf(f, "%d\n", n);
for(i = 0; i < n; i++) {
fprintf(f, "%s %.2f %d\n", subs[i].name, subs[i].specificWeight, subs[i].conductivity);
}
fclose(f);
printf("\nДанные успешно сохранены в файл substances.txt\n");
printf("\n=== Чтение данных из файла ===\n");
f = fopen("substances.txt", "r");
if(f == NULL) {
printf("Ошибка открытия файла для чтения!\n");
return 1;
}
int count;
fscanf(f, "%d", &count);
printf("\n%-20s %-15s %-12s\n", "Название", "Уд. вес", "Тип");
printf("-----------------------------------------------\n");
struct Substance temp;
for(i = 0; i < count; i++) {
fscanf(f, "%s %f %d", temp.name, &temp.specificWeight, &temp.conductivity);
const char *condType;
switch(temp.conductivity) {
case 1: condType = "Проводник"; break;
case 2: condType = "Полупроводник"; break;
case 3: condType = "Диэлектрик"; break;
default: condType = "Неизвестно";
}
printf("%-20s %-15.2f %-12s\n", temp.name, temp.specificWeight, condType);
}
fclose(f);
return 0;
}