Вопрос: Файловый ввод/вывод FILE *ptr

Тема в разделе "C/C++/C#", создана пользователем Newbik, 4 дек 2010.

  1. Newbik

    Newbik Гость

    Помогите плз. Диплом горит! Не работает! Почему не пойму. В чем ошибка?

    Код (C++):
    void __fastcall TForm1::Button8Click(TObject *Sender)
    {
    FILE *f0, *f1, *f2;
    char file[256], ch[16];
    int Day0, Year0, Year1, Day1;
    float max, min;
    f2=fopen("max-minfrqF2.dat", "wt");
    f0=fopen("D:\\Diplom\\6kyrs\\maxfrqF2.dat", "r");
    fscanf(f0, "%d %d %f", &Year0, &Day0, &max);
    f1=fopen("D:\\Diplom\\6kyrs\\minfrqF2.dat", "r");
    fscanf(f1, "%d %d %f", &Year1, &Day1, &min);
    while (fscanf(f0, "%d %d %f", &Year0, &Day0, &max)==3 && fscanf(f0, "%d %d %f", &Year1, &Day1, &min)==3)
    {
    if (Year0==Year1 && Day0==Day1) { fprintf(f2,"%4d %2d %6.1f\n", Year1, Day1, max-min); }
    else { break; }
    }
    fclose(f0);
    fclose(f1);
    fclose(f2);
    }
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Тут не вовсем то что вы хотите..... Думаю нужно проверять не итог считывания, а вариант с достижением конца файла (eof)
     
  3. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    2 Newbik : Автор, тема более не актуальна???
    Код (C++):
        FILE *f0, *f1, *f2;
    char file[256], ch[16];
    int Day0, Year0, Year1, Day1;
    float max, min;
    f2=fopen("max-minfrqF2.dat", "wt"); //Файла на запись в текстовом(символьном) режиме
    f0=fopen("D:\\Diplom\\6kyrs\\maxfrqF2.dat", "r"); //Чтение файла
    fscanf(f0, "%d %d %f", &Year0, &Day0, &max); //Прочитаем первую запись (вы ее в отдельные переменные запихали), хотя можно было сравнивать первы
    //f1=fopen("D:\\Diplom\\6kyrs\\minfrqF2.dat", "r"); //Это лишнее зачем же файл открывать по 10 раз
    //fscanf(f1, "%d %d %f", &Year1, &Day1, &min); //А это я как понимаю что бы первую запись пропустить совсем как то все непонятно
    while (!feof(f0)) //Пока не достигнут конец файла
    {
    fscanf(f0, "%d %d %f %d %d %f",&Year0, &Day0, &max,&Year1, &Day1, &min);
    if (Year0==Year1 && Day0==Day1)
    {
    //while (fscanf(f0, "%d %d %f", &Year0, &Day0, &max)==3 && fscanf(f0, "%d %d %f", &Year1, &Day1, &min)==3) //Вот это я вообще без комментариев оставлю
    //сделать нужно т.к. выше
    fprintf(f2,"%4d %2d %6.1f\n", Year1, Day1, max-min); // Вот и все
    }

    }

    fclose(f0);
    fclose(f2);
     
  4. Newbik

    Newbik Гость

    Спасибо! Тема уже не актуальна. Да я не по 10 раз открываю одно и тоже, там два разных файла (maxfrqF2.dat ; minfrqF2.dat)
     
Загрузка...
Похожие Темы - Вопрос Файловый ввод
  1. Генералл
    Ответов:
    2
    Просмотров:
    58
  2. ApplePen
    Ответов:
    0
    Просмотров:
    60
  3. gURaBA_N
    Ответов:
    3
    Просмотров:
    92
  4. ghost
    Ответов:
    1
    Просмотров:
    87
  5. kartaman
    Ответов:
    0
    Просмотров:
    127

Поделиться этой страницей