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

Используя высокоуровневые функции работы с файлами, прочитать строку из файла - C++

Восстановить пароль Регистрация
 
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 19:16     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #1
Здравствуйте!
Очень нужна помощь...
В этом задании нужно с помощью свой лично написанной функции избавиться от лишних пробелов и с помощью стандартной функции revers "перевернуть" строку.

// 2.Используя высокоуровневые функции работы с файлами, прочитать строку из файла,
// состоящую из английских слов, разделёнными пробелами (одним или несколько). Вывести строку,
// содержащую эти же слова (разделенные одним пробелом), но расположенные в обратном порядке.
// Записать полученную строку в другой файл.

Буду очень благодарна.
Я пробовала написать что-то своё, но, поняла, что для строк всё как-то гораздо сложней...

Просьба: напишите как можно проще...
СПАСИБО!


ЧАСТЬ ИНТ у меня есть, это всё я понимаю...
Как написать саму функцию?
Помогите...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 19:16     Используя высокоуровневые функции работы с файлами, прочитать строку из файла
Посмотрите здесь:

C++ Функции для работы с текстовыми файлами
[c++] Прочитать строку из файла в хостинге. C++
Прочитать строку из файла и записать ее в массив структуры C++
Низкоуровневые функции работы с файлами C++
прочитать 5-ю строку из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
27.05.2013, 19:24     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #2
C++
1
2
3
4
5
6
7
8
string RemoveBlanks(string c)
{
    string a;
    for(int i=0;i<c.lenght();i++)
            if(c[i]!=' ')a.pushback(c[i]);
    a.reverse();
    return a;
}
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 19:31  [ТС]     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #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
#include <fstream>
#include <string>
 
 
using namespace std;
 
string RemoveBlanks(string c)
{
    string a;
    for(int i=0;i<c.lenght();i++)
            if(c[i]!=' ')a.pushback(c[i]);
    a.reverse();
    return a;
}
 
int main()
{
    string file_in, file_out;
 
    cout << "Input: ";
    cin >> file_in;
    cout << "Output: ";
    cin >> file_out;
 
    ifstream in(file_in.c_str(), ios::in);
    ofstream out(file_out.c_str(), ios::out);
    if (!in || !out)
    {
        cerr << "error: couldn't open file(s)" << endl;
        return 1;
    }
 
    RemoveBlanks(file_in);
    in.close(); out.close();
 
    return 0;
}
Так?
Что-то не так....
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
27.05.2013, 19:37     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #4
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
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
string RemoveBlanks(string c)
{
    string a;
    for(int i=0;i<c.length();i++)
            if(c[i]!=' ')a.push_back(c[i]);
    reverse(a.begin(),a.end());
    return a;
}
 
int main()
{
    string file_in, file_out;
    cout << "Input: ";
    cin >> file_in;
    cout << "Output: ";
    cin >> file_out;
    ifstream in(file_in.c_str(), ios::in);
    ofstream out(file_out.c_str(), ios::out);
    if (!in || !out)
    {
        cerr << "error: couldn't open file(s)" << endl;
        return 1;
    }
    string data;
    in>>data;
    in.close();
    RemoveBlanks(data);
    out<<data;
    out.close();
 
    return 0;
}
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 20:33  [ТС]     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #5
Оно не то делает..
Во второй файл попадает только первое слово из первого файла...

Добавлено через 15 минут
Помогите разобраться, пожалуйста...Я не понимаю, что эта программка не так творит...

Добавлено через 10 минут
Сергей Сергеевич! Помогите...Пожалуйста

Добавлено через 10 минут
ну, кто-нибудь...Ну, пожалуйста
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
27.05.2013, 21:37     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #6
C++
1
2
3
4
5
6
7
8
9
10
11
    while(!in.eof())
    {
        char buf[100];
        in.getline(buf,100);
        data=buf;
        RemoveBlanks(data);
        out<<data;
    }
 
    in.close();
    out.close();
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 21:45  [ТС]     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #7
Спасибо, работает!
НО пробелы не пропадают лишние...
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
27.05.2013, 21:56     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #8
Исправьте
C++
1
data=RemoveBlanks(data);
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 21:59  [ТС]     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #9
Дело в том, что в задании написано, что пробелы больше 1-го должны быть заменены одним...а их теперь нет :-)))
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
27.05.2013, 22:26     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #10
Можно считывать пословно. И не мучаться с этими преобразованиями.

Добавлено через 11 минут
C++
1
2
3
4
5
6
7
8
9
10
11
string RemoveBlanks(string c){
    istringstream istr(c);
    string s;
    vector<string> a;
    while (getline(istr, s, ' '))
            a.push_back(s);
    s.clear();
    for (auto i=s.rbegin();i!=s.rend();i++)
        s+=(*i);
    return s;
}
Как то так, типо, наверняка есть ошибки.

Добавлено через 59 секунд
Ну это, если править уже считанное.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 22:28     Используя высокоуровневые функции работы с файлами, прочитать строку из файла
Еще ссылки по теме:

C++ Функции работы с файлами через поток не работают! Подскажите ошибку?
Прочитать строку из файла, разделить слова и вывести количество символов C++
Прочитать из файла строку с заданным номером C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
27.05.2013, 22:28     Используя высокоуровневые функции работы с файлами, прочитать строку из файла #11
C++
1
2
3
4
5
6
7
8
9
string RemoveBlanks(string c)
{
    string a;
    for(int i=0;i<c.lenght()-1;i++)
            if(c[i]!=' ' && c[i+1]!=' ')a.pushback(c[i]);
    a.pushback(c[lenght()-1]);
    a.reverse();
    return a;
}
Yandex
Объявления
27.05.2013, 22:28     Используя высокоуровневые функции работы с файлами, прочитать строку из файла
Ответ Создать тему
Опции темы

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