Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ Fail, файлы 
:(
    Опции темы
geranija
Дата 22.4.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.4.2006

Репутация: нет
Всего: нет



Please, помогите с этим заданием

Если и первый, и последний элемент файла - оба они или позитивние или негативние, тогда все хранявшиеся в файле нигативние числа увеличить на 1.

Зарание, спасибо!  smile 

 
PM MAIL   Вверх
asdf
Дата 22.4.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 27.8.2004
Где: Кишинёвъ

Репутация: 1
Всего: 11



Код
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main(void)
{
    const char* PATH="d:\\file.txt";
    ifstream if1(PATH);

    vector <int> numbers;

    while ( if1.peek()!=EOF ){
        int number;
        if1 >> number;
        numbers.push_back(number);
    }
    if1.close();

    if ( numbers.back()*numbers.front()>0 ){
        int s=numbers.size();
        for (int i=0;i<s;i++)
            if ( numbers.at(i)<0 ) numbers.at(i)++ ;

        ofstream of1(PATH);
        of1<<numbers.front();
        for (int i=1;i<s;i++)
            of1<<' '<<numbers.at(i);
        of1.close();
    }
    return 0;
}
 
--------------------
... 
PM MAIL   Вверх
geranija
Дата 22.4.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.4.2006

Репутация: нет
Всего: нет



Ничего не понимаю  smile это уж больно сложным языком написанно для 1 курса  smile  
PM MAIL   Вверх
DeadSoul
Дата 22.4.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



asdf, если использовать stl, но на полную.
Код

#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <functional>
#include <algorithm>

class MyOper: public std::unary_function<void,int>
{
public:
    void operator()(int& some )
    {
        if ( some >= 0 )
            return;
        ++some;
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    std::ifstream fin("C:/1.txt");
    std::vector<int> data;
    std::copy( std::istream_iterator<int>(fin), std::istream_iterator<int>(), std::back_inserter(data) );

    if ( !data.empty() && data.front()*data.back()>0 )
        std::for_each( data.begin(), data.end(), MyOper() );

    std::copy( data.begin(), data.end(), std::ostream_iterator<int>( std::cout, " " ) );
    return 0;
}


 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
nostromo
Дата 24.4.2006, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 4
Всего: 10



Замечательно!!! 

Хорошая тенденция. Просят на C++, значит и надо писать на C++,
а не на С с классами, который пытаются выдать за C++ некоторые преподы и старперы.

 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
DeadSoul
Дата 24.4.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



nostromo, а ведь красиво. Ни одного цикла. smile  


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
nostromo
Дата 24.4.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 4
Всего: 10



... Не говоря уже об отсутствии проблем с освобождением памяти. А кое-кто говорит, что это слишком сложно  smile   

Это сообщение отредактировал(а) nostromo - 24.4.2006, 10:09
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
asdf
Дата 24.4.2006, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 27.8.2004
Где: Кишинёвъ

Репутация: 1
Всего: 11



Цитата(nostromo)
а не на С с классами, который пытаются выдать за C++ некоторые преподы и старперы.

Ну, не говори. У нас например заставляли переписывать лабы для избежания классов (писали под Турбо Си, естественно).



Изменение 29-ой строки, для вывода в файл....
Код
std::copy( data.begin(), data.end(), std::ostream_iterator<int>( static_cast<std::ostream&>(std::ofstream("c:/1.txt")), " " ) );
 
--------------------
... 
PM MAIL   Вверх
nostromo
Дата 24.4.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 4
Всего: 10



Я совсем не против С или С с классами. Все это необходимо, только нужно называть вещи своими именами.

P.S. Скоро переедем во флейм.  smile  
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
asdf
Дата 24.4.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 27.8.2004
Где: Кишинёвъ

Репутация: 1
Всего: 11



Не перед всеми преподами умничать одинаково полезно.
Скорее всего и у geranija непростой случай.
Цитата(nostromo @  24.4.2006,  11:23 Найти цитируемый пост)
только нужно называть вещи своими именами.

Извиняй, сам на программиста не тяну.
 
--------------------
... 
PM MAIL   Вверх
nostromo
Дата 24.4.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 4
Всего: 10



Цитата

Не перед всеми преподами умничать одинаково полезно.
Скорее всего и у geranija непростой случай.

Правда жизни ...

Цитата

Извиняй, сам на программиста не тяну.

Ложная скромность?
Мне кажется, что владение базовыми вещами из STL, Boost давно уже переросло из признака "крутизны" программиста в насущную необходимость. Попробуйте найти работу в нормальной фирме без этих вещей. Хуже того, чтобы перейти от того, чем пичкают в школе и универе к осознания необходимости этих библиотек простой практики программирования недостаточно. Это пропасть. Чтобы понять, что в некотором месте выгоднее использовать лямбда-функции нужно по крайней мере знать, что это такое.

 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0910 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.