Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

С++. работа с фаилами.

29K
28 февраля 2008 года
ведьмочка
8 / / 10.01.2008
Помогите пожалуйста с задачкой:

Дан файл F, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный файл H, переписать компоненты файла F в файл G так, чтобы в файле G числа шли в следующем порядке: два положительных, два отрицательных, два положительных, два отрицательных и т.д. ( предполагается, что число компонент в файле делится на 4).

Зарание благодарю.
33K
28 февраля 2008 года
morf
6 / / 20.10.2007
При условии что проверять на корректность введённые данные не нужно то задача вродебы решается следующим образом:

Код:
#include <fstream>
using namespace std;
int GetFromF(fstream* f)
{
    int x;
    do
    {
        *f>>x;
    }
    while (  x < 0  );
    return x;
}
int GetFromH(fstream* f)
{
    int x;
    *f>>x;
    return x;
}
int main()
{
    fstream f,g;
    f.open("f.txt",ios::in);
    g.open("h.txt",ios::out);
    int x,cnt;
    cnt=0;

    while (  f.eof() == false  )
    {
        f>>x;
        cnt++;
        if (  x < 0  )
            g<<x<<"\t";
    }

    g.close();
    f.close();
    f.clear();
    g.clear();

    f.open("f.txt",ios::in);
    g.open("g.txt",ios::out);
    fstream h("h.txt",ios::in);

    cnt/=4;

    for (int i=1;i<=cnt;i++)
    {
        g<<GetFromF(&f)<<"\t";
        g<<GetFromF(&f)<<"\t";

        g<<GetFromH(&h)<<"\t";
        g<<GetFromH(&h)<<"\t";
    }

    f.close();
    g.close();
    h.close();

    return 0;
}


Да простят меня местные Гуру если я чтото не так сделал:)
2.0K
28 февраля 2008 года
BroKeR
163 / / 04.05.2006
не понял зачем нужен дополнительный файл,намудрил с векторами но работает.
Код:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    ifstream inFile("input.txt");
    ofstream outFile("output.txt");
    vector <int> plus;
    vector <int> minus;
       
    if (inFile.fail() || outFile.fail())
    {
        cerr<<"File error"<<endl;
        exit(1);
    }
   
    string str;
    int rez;
    while (inFile>>str)
    {
    rez=atoi(str.c_str());
    if (rez>0) plus.push_back(rez);
    else minus.push_back(rez);
    }

    int i=0,p=plus.size()-1,m=minus.size()-1;
    bool b=false;
    while (plus.size()>0 && minus.size()>0)
    {
    if (!b)
    {
        outFile<<plus[p--]<<endl;
        plus.pop_back();
        i++;
        if (i==2) b=true;
    }
    else
    {
        outFile<<minus[m--]<<endl;
        minus.pop_back();
        i--;
        if (!i) b=false;
    }

    }
   
    outFile.close();
   
    return 0;
}
320
29 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: BroKeR
не понял зачем нужен дополнительный файл,намудрил с векторами но работает.
 
Код:
...
    string str;
    int rez;
    while (inFile>>str)
    {
    rez=atoi(str.c_str());
    if (rez>0) plus.push_back(rez);
    else minus.push_back(rez);
    }
   ...



Если ты из потока читаешь зачем еще atoi и с_str ?

Код:
...
   int value;
    while(in)
    {
        in >> value;
        if(value > 0)
           plus.push_back(value);
        else
           minus.push_back(value);
    }
 minus.pop_back();

...
2.0K
29 февраля 2008 года
BroKeR
163 / / 04.05.2006
я с стлью постольку поскольку.Ты вот написал вспомнил,что он сам понимает.Говорю же на работе ядерная смесь с и с++.
33K
29 февраля 2008 года
morf
6 / / 20.10.2007
Цитата: BroKeR
не понял зачем нужен дополнительный файл,намудрил с векторами но работает.



А дополнительный файл нужен по тому, что в условии задачи сказано:

Цитата:
...Используя вспомогательный файл H, переписать компоненты файла F в файл G так, чтобы....

2.0K
29 февраля 2008 года
BroKeR
163 / / 04.05.2006
Цитата: morf
А дополнительный файл нужен по тому, что в условии задачи сказано:



А на фига????

320
29 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: BroKeR
А на фига????



1.Рекомендую пользоваться нормальным языком,без подобных выражений типа "на фига".
2.Еще раз повторю: студенческие задачи имеют свою специфику,есть условие задачи и оно должно быть соблюдено.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог