Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
1

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

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

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

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

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

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


ЧАСТЬ ИНТ у меня есть, это всё я понимаю...
Как написать саму функцию?
Помогите...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 19:16
Ответы с готовыми решениями:

cоставить программу, используя процедуры и функции для работы с файлами
Дан файл вещественных чисел. Найти количество его локальных максимумов.

Функции работы с типизированными файлами. Переместить указатель в конец типизированного файла
Приветствую всех. Решил попробовать работать с типизированными файлами(тема нетрудная, но как-то я...

Прочитать 5-ю строку из файла
подскажите пожалуйста как с помощью потоков прочесть текстовую строку и поместить её в массив?

Прочитать данные из файла в jsonObject (используя Gson)
В проекте лежит файл (не как ресурс, а в одной из папок в рамках проекта) под названием context.txt...

10
Модератор
Эксперт С++
13701 / 10904 / 6472
Регистрация: 18.12.2011
Сообщений: 29,110
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;
}
1
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;
}
Так?
Что-то не так....
0
Модератор
Эксперт С++
13701 / 10904 / 6472
Регистрация: 18.12.2011
Сообщений: 29,110
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;
}
1
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 20:33  [ТС] 5
Оно не то делает..
Во второй файл попадает только первое слово из первого файла...

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

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

Добавлено через 10 минут
ну, кто-нибудь...Ну, пожалуйста
0
Модератор
Эксперт С++
13701 / 10904 / 6472
Регистрация: 18.12.2011
Сообщений: 29,110
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();
1
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 21:45  [ТС] 7
Спасибо, работает!
НО пробелы не пропадают лишние...
0
Модератор
Эксперт С++
13701 / 10904 / 6472
Регистрация: 18.12.2011
Сообщений: 29,110
27.05.2013, 21:56 8
Исправьте
C++
1
data=RemoveBlanks(data);
0
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
27.05.2013, 21:59  [ТС] 9
Дело в том, что в задании написано, что пробелы больше 1-го должны быть заменены одним...а их теперь нет :-)))
0
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
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 секунд
Ну это, если править уже считанное.
0
Модератор
Эксперт С++
13701 / 10904 / 6472
Регистрация: 18.12.2011
Сообщений: 29,110
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;
}
0
27.05.2013, 22:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 22:28
Помогаю со студенческими работами здесь

Прочитать из файла строку целиком
char s1,s2,s3,s4; //Переменная будет считывать строку ifstream in (&quot;D:\\1.txt&quot;); //Открываем...

Прочитать из файла первую строку
Доброго времени суток. Как прочитать из файла первую строку? Пробовал так: $handle =...

Прочитать строку из файла на хостинге
Всем привет. Нужно прочитать строку из файла, который находится в хостинге. Допустим файл...

Прочитать из файла заданную строку
Немного запутался, если у меня есть в файле: abc def ghi Как мне засунуть в массив именно...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru