Форум программистов, компьютерный форум CyberForum.ru

Переписать слова из одного файла в другой, разбив их строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какой отладчик лучше использовать? http://www.cyberforum.ru/cpp-beginners/thread1206197.html
Привет всем. Скажите, какой отладчик лучше использовать начинающему?
C++ Функция поиска в классах Помогите написать функцию поиска в классе. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread1206161.html
Сформировать упорядоченный двунаправленный список целых чисел C++
Сформировать упорядоченный двунаправленный список целых чисел. Включить в список новый элемент, не нарушив его упорядоченность. Вывести на экран список.
Вывод из файла инфо о студенте C++
Во входном файле записана информация о каждом из 30 студентов некоторого вуза: <фамилия>, <имя>, <отчество>, <пол>, <возраст>, <курс>, причем в фамилии, имени и отцу не более 12 букв, пол указывается буквами М и Ж, возраст - целое от 16 до 35, курс - целое от 1 до 5. Сведения о студентах разделенные точкой с запятой. Напишите программу, которая вводит эту информацию и печатает следующие данные:...
C++ Выяснить, есть ли два пассажира, багаж которых совпадает http://www.cyberforum.ru/cpp-beginners/thread1206154.html
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дано файл f, содержащий информацию о багаже ​​нескольких пассажиров, информация о багаже ​​отдельного пассажира представляет собой соответствующую пару чисел (целое, вещественное). Выяснить, есть ли два пассажира, багаж которых совпадает по количеству вещей и отличается по весу не больше, чем на 0,5 кг.
C++ Типизированный файл с целыми числами Компоненты файла dany.dat являются целыми числами. Решить следующую задачу двумя способами: а) создать типизированный файл dany.dat, в процессе реализации программы наполнить его числами; б) создать файл dany.dat как текстовый файл. найти: 1.Наименьшее из компонент файла dany.dat подробнее

Показать сообщение отдельно
examplelol
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 6

Переписать слова из одного файла в другой, разбив их строками - C++

12.06.2014, 13:12. Просмотров 353. Ответов 3
Метки (Все метки)

Нужна не столько работающая программа, сколько объяснение, как это изобразить.
Задание такое: В одном файле написаны слова через пробелы, нужно переписать их во второй файл, но чтобы каждое слово было с новой строки и заканчивалось как-нибудь литералом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    char buff[50]; // буфер промежуточного хранения считываемого из файла текста
    char buff2[50];
    ifstream f("cppstudio.txt");
    ofstream f2("cppstudio2.txt", ios_base::app); // открываем файл для добавления информации к концу файла
 
 
    if (!f.is_open()) // если файл не открыт
        cout << "Файл не может быть открыт!\n"; // сообщить об этом
    else
    {
 
 
            f.getline(buff, 50); // считали строку из файла
            int k=1;
            int n;
            for (int i=1;i<=strlen(buff);i++){
                    if (buff[i]=' '){
                    n=i-k;
                    k=i;
                    strncpy(buff,buff2, n);
                    cout<<n;
                    f2<<buff2<<" Something text\r\n";
                }
            }
        f.close(); // закрываем файл
        f2.close(); // закрываем второй файл
 
    }
    cout<<"Файл cppstudio2.txt был изменен!";
    return 0;
}
Что попытался написать я: считываем строку, проходим по циклу от начала до конца строки, если встретился пробел - переписываем от начала до этого пробела слово в другую переменную, саму переменную записываем в файл.
Но уже на данном этапе не понятно как переписывать следующие слова после пробела.
C++
1
2
3
4
5
6
7
8
9
for (int i=1;i<=strlen(buff);i++){
                    if (buff[i]=' '){
                    n=i-k;
                    k=i;
                    strncpy(buff,buff2, n);
                    cout<<n;
                    f2<<buff2<<" Something text\r\n";
                }
            }
Вот цикл в программе, который сделан НЕ ВЕРНО. С помощью какого алгоритма можно написать верную программу?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru