Работа с файлами

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Faull
Сообщения: 1
Зарегистрирован: 12 дек 2013, 20:28

Дан файл f, содержащий сведения о веществах: указывается название вещества, его удельный вес и проводимость (проводника, полупроводник, изолятор). Найти удельные веса и названия всех полупроводников.

Код: Выделить всё

#include <iostream>
#include <cstdlib>
#include <string>
#include <windows.h>
 
 
using namespace std;
 
struct sub 
{
     char name[15];
     double ves;
     char provod[15];
};
 
int WriteFile(FILE *f, int n)
{
    sub arr;
    f = fopen("file.dat", "wb");
    if (f == NULL)
    {
        printf("Error");
        exit(0);
    }
    cout<<"Введете количество записей:"<<endl;
    cin>>n;
        cout<<"Введите название эелемента, удельный вес и тип проводимости"<<endl;
    for(int i = 0; i < 3; i++)
    {
             cin >> arr.name >> arr.ves >> arr.provod;
        fwrite(&arr, sizeof(sub), 1 , f);
            cout << endl;
    }
    fclose(f);
    return 0;
}
 
void ReadFile(FILE *f, int n, char *pr)
{
    sub arr;
    f = fopen("file.dat", "rb");
    if (f == NULL)
    {
        printf("Error");
        exit(0);
    }
    printf("\n");
    printf("          Output file:\n");
    printf("-----------------------\n");
    for(int i = 0; i < n; i++)
    {
        fread(&arr, sizeof(sub), 1 , f);
        cout << "\nПолупроводники:" << endl;
         if(strcmp(arr.provod, pr) == 0)
     cout << arr.name << ' ' << arr.ves << endl;
    }
    fclose(f);
}
 
int main()
{
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
     int y,z,n;
     sub arr[3];
     char* pr = "полупроводник";
    z = WriteFile(f1,n);
    ReadFile(f1, n, pr);
     system("pause");
     return 0;
}
выдает ошибки: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
f1: необъявленный идентификатор
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Первое - это просто ворнигн, это не ошибка.
А переменная f1 действительно не объявлена. Объяви её.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить