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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП.Файлы. Двойной интервал между строками 
V
    Опции темы
andDavid
Дата 14.2.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Написать программу копирования текстового файла с добавлением двойного интервала между строками. Обработать ошибки.

Код:
Код


#include <iostream>
#include <fstream>

using namespace std; 

int main ()
{

    ifstream in ("Test.txt");

    if ( !in )
    {
        cerr << "Sozdanie faila..." << endl;

        ofstream on ("Test.txt");
        on << "Evidently, there are many types of systems that can be analyzed both quantitatively and qualitatively.";
            
        on.close ();
    }
    else
        in.close ();

    ifstream Copy ("Test.txt");
    ofstream New ("NEW.txt");

    char s[100];

    Copy.get(*s);
    while (!Copy.eof() )
    {
        New.put(*s);
        Copy.get(*s);
    }

    Copy.close();
    New.close();
    
    
return 0;
}

Как добавить двойной интервал?

Это сообщение отредактировал(а) andDavid - 14.2.2010, 15:14
PM MAIL   Вверх
нуп
Дата 14.2.2010, 16:19 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

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



читаеш файл построчно, к каждой строке добавляеш "\r\n"  smile 
PM MAIL   Вверх
bsa
Дата 14.2.2010, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(нуп @  14.2.2010,  16:19 Найти цитируемый пост)
читаеш файл построчно, к каждой строке добавляеш "\r\n"
Иногда лучше жевать... '\r' не нужно никуда выводить. Исключение - работа под Windows с текстовым файлом, открытым в двоичном режиме. Но кто такое сделал - ССЗБ.

andDavid, между строчками 31 и 32 добавь new << '\n'. А лучше вообще перепиши программу так:
Код
#include <iostream>
#include <fstream>
#include <string>
using namespace std; 
int main ()
{
    ifstream in ("Test.txt");
    if ( in.is_open() )
    {
        cerr << "Sozdanie faila..." << endl;
        ofstream on ("Test.txt");
        on << "Evidently, there are many types of systems that can be analyzed both quantitatively and qualitatively.";
    } else
        in.close();
    ifstream src ("Test.txt");
    ofstream dst ("NEW.txt");
    string buffer;
    while( getline(src, buffer) )
         dst << buffer << "\n\n";
    return 0;
}

PM   Вверх
andDavid
Дата 14.2.2010, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



bsa,
Мне кажеться, что в последнем коде мы копируем содержимое файла Test полностью, потом переносим его в файл New и в конце файла добавляем два \n.
Но, суть программы состоит в том, чтобы скопировать файл и после каждой строки поставить \n\n.
Или я что-то не так понял?  smile 

Это сообщение отредактировал(а) andDavid - 14.2.2010, 23:25
PM MAIL   Вверх
zim22
Дата 14.2.2010, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(andDavid @  14.2.2010,  22:24 Найти цитируемый пост)
Или я что-то не так понял? 

 smile 
Цитата(bsa @  14.2.2010,  19:54 Найти цитируемый пост)
while( getline(src, buffer) )         
  dst << buffer << "\n\n";




--------------------
PM MAIL   Вверх
andDavid
Дата 14.2.2010, 23:32 (ссылка)  | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(zim22 @ 14.2.2010,  23:30)
Цитата(andDavid @  14.2.2010,  22:24 Найти цитируемый пост)
Или я что-то не так понял? 

 smile 
Цитата(bsa @  14.2.2010,  19:54 Найти цитируемый пост)
while( getline(src, buffer) )         
  dst << buffer << "\n\n";

И? поподробнее пожалуйста

Это сообщение отредактировал(а) andDavid - 14.2.2010, 23:32
PM MAIL   Вверх
zim22
Дата 14.2.2010, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(andDavid @  14.2.2010,  22:32 Найти цитируемый пост)
И? поподробнее пожалуйста

Цитата(andDavid @  14.2.2010,  22:24 Найти цитируемый пост)
суть программы состоит в том, чтобы скопировать файл и после каждой строки поставить \n\n.

код говорит сам за себя
Цитата(bsa @  14.2.2010,  19:54 Найти цитируемый пост)
while( getline(src, buffer) )         
  dst << buffer << "\n\n";



Это сообщение отредактировал(а) zim22 - 14.2.2010, 23:41


--------------------
PM MAIL   Вверх
andDavid
Дата 14.2.2010, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну так я правильно мыслю?smile
PM MAIL   Вверх
bsa
Дата 15.2.2010, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(andDavid @  14.2.2010,  23:44 Найти цитируемый пост)
Ну так я правильно мыслю? 
нет.
Код
while( getline(src, buffer) )         
  dst << buffer << "\n\n";
Можно переписать так:
Код
while( src.good() ) { //пока есть данные в потоке src
  getline(src, buffer); //считать из него одну строку
  dst << buffer; //записать эту строку в поток dst
  dst << "\n\n"; //записать в поток dst два символа конца строки
}

PM   Вверх
andDavid
Дата 15.2.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



странно, а программа работает так, как я говорил.
PM MAIL   Вверх
bsa
Дата 15.2.2010, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(andDavid @  14.2.2010,  23:24 Найти цитируемый пост)
Мне кажеться, что в последнем коде мы копируем содержимое файла Test полностью, потом переносим его в файл New и в конце файла добавляем два \n.
Если в файле всего одна значащая строка, то именно это и произойдет.

PM   Вверх
andDavid
Дата 15.2.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ясно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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