Работа С Потоками В С++

Тема в разделе "C/C++/C#", создана пользователем vladis222, 19 фев 2012.

  1. vladis222

    vladis222 Active Member

    Регистрация:
    6 дек 2011
    Сообщения:
    31
    Симпатии:
    0
    Здравствуйте! Прошу вашей помощи по такому вопросу: дело в том, что в моей лабораторной работе нужно вывести в файл выходного потока макс.значение. И соответственно,для этого его нужно объявить,как и входной поток. Я объявил его по всем правилам: input ifstr; открыл, считал с него данные. Но, при инициализации выходного потока ofstream outp,и соответственно при выводе инфы в него программа придралась к строке кода с объявлением выходного потока,что невозможно его использовать,ошибка. Скажите пожалуйста в чем может заключаться проблема.

    Вот код проги:


    #include <iostream>
    using namespace std;
    #include<fstream>
    #include<iomanip>
    #include <string.h>
    //#include <stdlib.h>
    #include <conio.h>

    const int N=5;
    /*------------------------------------------ объявление глобальных переменных -------------------------------*/
    //FILE *fin;
    //FILE *fout;
    char name_fin[13] = ""; /*имя входного файла*/
    char name_fout[13] = ""; /*имя выходного файла*/
    ifstream ifstr; /*Объявление входного потока*/
    ofstream output; /*Объявление выходного потока*/
    /*----------------------------------------------- исходная структура -------------------------------------*/
    struct input
    {
    char name[20];
    float tr_1950;
    float tr_1957;
    float komb_1950;
    float komb_1957;
    };
    /*---------------------------------------------------- результирующая структура -------------------------*/
    struct output
    {
    char name[20];
    float abs_prir;
    } res;

    /*------------------------------- главная функция принимает параметрами входной и выходной файлы -----------------------*/
    void main(int argc, char *argv[])
    {
    setlocale(LC_ALL,"Rus");
    struct input table[N];
    int count_recs; /*кол-во записей*/
    int i;
    float max;
    cout<<"Enter name of input file :"<<endl;
    cin>>name_fin;

    /*if(argc == 2)
    { /*задано имя только входного файла*/
    //strcpy(name_fin,argv[1]);
    // }
    // if(argc >= 3)
    // { /*заданы имена ивх. и вых. файлов*/
    // strcpy(name_fin,argv[1]);
    // strcpy(name_fout,argv[2]);
    //}
    /*---------------------------------------------считывание исходных данных из файла-----------------------------*/
    count_recs=0;
    ifstr.open(name_fin);
    while (ifstr.fail())
    { cout<< "error"<<endl;
    cout<<"Enter name of input file :"<<endl;
    cin>>name_fin;
    }


    while(ifstr>>table[count_recs].name>>table[count_recs].tr_1950>>table[count_recs].tr_1957>>table[count_recs].komb_1950>>table[count_recs].komb_1957)
    {
    cout.setf(ios::left); // выравнивание по левому краю
    cout << setw(15) << table[count_recs].name << '!';
    cout << setw(5) << table[count_recs].tr_1950 << '!'; // "%-15s!
    cout<< table[count_recs].tr_1957 <<" ! "<<table[count_recs].komb_1950 <<"!"<<table[count_recs].komb_1957 <<"!"<< endl;


    }// while
    count_recs++;
    getch();
    max=-1;
    for(i=0;i<count_recs;i++)
    {
    if(((table.komb_1957-table.komb_1950)*0,01)>max)
    {
    max =((table.komb_1957-table.komb_1950)*0,01);
    strcpy(res.name, table.name);
    res.abs_prir=table.tr_1957-table.tr_1950;
    } //if
    }// for

    //вывод в файл
    outp.open(name_fout);
    outp<<setw(4)<<res.name<<setw(20)<<res.abs_prir<<endl;

    ifstr.close();
    output.close();
    //}
    //------------------------- Ввод имени входящего и выходного файла -----------------------------

    cout<<("Enter name of output file :\n");
    cin>>name_fout;



    //-----------------------------------------------------------------------

    }
     
  2. Гость

    Все нормально, только нужно внимательней писать!!!
    Код (C++):
        //вывод в файл
    output.open(name_fout);
    output<<setw(4)<<res.name<<setw(20)<<res.abs_prir<<endl;
    И ввод названия выходного файла должен быть перед предыдущим кодом.
     
  3. vladis222

    vladis222 Active Member

    Регистрация:
    6 дек 2011
    Сообщения:
    31
    Симпатии:
    0
    спасибо)))
     
Загрузка...
Похожие Темы - Работа Потоками С++
  1. Vadik(R)
    Ответов:
    3
    Просмотров:
    3.045
  2. Andrey Kha
    Ответов:
    0
    Просмотров:
    33
  3. Hoasker
    Ответов:
    0
    Просмотров:
    65
  4. garri671
    Ответов:
    0
    Просмотров:
    74
  5. lelik200969
    Ответов:
    0
    Просмотров:
    55

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