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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
#1

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

27.05.2013, 19:16. Просмотров 453. Ответов 10
Метки нет (Все метки)

Здравствуйте!
Очень нужна помощь...
В этом задании нужно с помощью свой лично написанной функции избавиться от лишних пробелов и с помощью стандартной функции revers "перевернуть" строку.

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

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

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


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

C++ Функции для работы с текстовыми файлами
Прочитать строку из файла на хостинге C++
Прочитать строку из файла и записать ее в массив структуры C++
Низкоуровневые функции работы с файлами C++
прочитать 5-ю строку из файла C++
Прочитать строку из файла, разделить слова и вывести количество символов C++
Прочитать из файла строку с заданным номером C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6129 / 5732 / 1854
Регистрация: 18.12.2011
Сообщений: 14,653
Завершенные тесты: 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
6129 / 5732 / 1854
Регистрация: 18.12.2011
Сообщений: 14,653
Завершенные тесты: 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
6129 / 5732 / 1854
Регистрация: 18.12.2011
Сообщений: 14,653
Завершенные тесты: 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
6129 / 5732 / 1854
Регистрация: 18.12.2011
Сообщений: 14,653
Завершенные тесты: 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
601 / 454 / 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++ Прочитать из файла заданную строку
Прочитать символы из файла, используя eof() (программа работает не так, как ожидается) C++
Прочитать из файла строку целиком C++

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
6129 / 5732 / 1854
Регистрация: 18.12.2011
Сообщений: 14,653
Завершенные тесты: 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     Используя высокоуровневые функции работы с файлами, прочитать строку из файла
Ответ Создать тему
Опции темы

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