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

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

Восстановить пароль Регистрация
 
examplelol
 Аватар для examplelol
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 6
12.06.2014, 13:12     Переписать слова из одного файла в другой, разбив их строками #1
Нужна не столько работающая программа, сколько объяснение, как это изобразить.
Задание такое: В одном файле написаны слова через пробелы, нужно переписать их во второй файл, но чтобы каждое слово было с новой строки и заканчивалось как-нибудь литералом.
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";
                }
            }
Вот цикл в программе, который сделан НЕ ВЕРНО. С помощью какого алгоритма можно написать верную программу?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2014, 13:12     Переписать слова из одного файла в другой, разбив их строками
Посмотрите здесь:

C++ Числа из одного файла переписать в другой
C++ Переписать элементы с массива с одного в другой
Переписать содержимое F1 в файл F2, разбив на строки C++
Переписать из одного массива в другой C++
Работа с файлами (Скопировать слова из одного текстового файла в другой, расположив их в нем в порядке возрастания длины) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
tehnar5
31 / 31 / 12
Регистрация: 03.05.2011
Сообщений: 84
12.06.2014, 13:36     Переписать слова из одного файла в другой, разбив их строками #2
Можно делать не f.getline, а f >> s, тогда как раз считает строку до первого пробела/переноса строки, то есть, считает слово.
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
12.06.2014, 14:15     Переписать слова из одного файла в другой, разбив их строками #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от tehnar5 Посмотреть сообщение
Можно делать не f.getline, а f >> s
+1

C++
1
2
3
4
5
6
7
8
ifstream in;
ofstream out;
string in_str;
while(in)
{
   in>>in_str;
   out<<in_str<<some_literal<<"\n";
}
Примерно так.
examplelol
 Аватар для examplelol
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 6
12.06.2014, 14:24  [ТС]     Переписать слова из одного файла в другой, разбив их строками #4
Спасибо большое, все работает. Просто не знал что запись f>>s будет копировать до первого пробела. Думал что всю строку.
Yandex
Объявления
12.06.2014, 14:24     Переписать слова из одного файла в другой, разбив их строками
Ответ Создать тему
Опции темы

Текущее время: 08:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru