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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Ferghost
0 / 0 / 0
Регистрация: 30.05.2009
Сообщений: 15
#1

обработка строк - C++

04.06.2009, 23:09. Просмотров 1097. Ответов 15
Метки нет (Все метки)

Помогите решить задачу, на завтра нада,а с методом выполнения не знаком, к сожалению.
Разработать консольное приложение, выполняющее решение следующей задачи. В текстовом файле Strings.txt содержится набор ASCII-строк, каждая из которых не превышает 80 символов. Строки могут начинаться с пробелов (левые пробелы) или заканчиваться пробелами (правые пробелы). Могут быть также пустые строки или строки, состоящие только из пробелов. Требуется из каждой строки удалить все левые и правые пробелы, а также строки, содержащие только разделители (пробелы и знаки переноса строки). Оставшиеся непустые строки необходимо отсортировать по алфавиту и записать в текстовый файл Output.txt.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2009, 23:09     обработка строк
Посмотрите здесь:

C++ Обработка строк
C++ обработка строк
Обработка строк C++
C++ Обработка строк
C++ Обработка строк
C++ обработка строк
C++ обработка строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2779 / 1593 / 142
Регистрация: 03.12.2007
Сообщений: 4,175
Завершенные тесты: 1
05.06.2009, 01:01     обработка строк #2
Можно было бы сначала попытаться хоть что-то сделать, что можешь. Язык не указан, пусть будет C++.
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
#include <iostream>
#include <fstream>
#include <string>
#include <list>
 
using namespace std;
 
int main()
{
    list<string> strings;
    ifstream fin("Strings.txt");
    while (!fin.eof())
    {
        string s;
        getline(fin, s);
        size_t first = s.find_first_not_of(' ');
        size_t last = s.find_last_not_of(' ');
        if (first == string::npos)
            s.clear();
        else
            s = s.substr(first, last - first + 1);
        if (!s.empty())
            strings.push_back(s);
    }
    fin.close();
    strings.sort();
    ofstream fout("output.txt");
    for (list<string>::iterator i = strings.begin(); i != strings.end(); i++)
        fout << *i << endl;
    fout.close();
}
zDDfix
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 5
07.06.2009, 22:35     обработка строк #3
Добрый вечер.
Somebody, передрал код, что выше.
Все компилируется, и работает, если запускать ехе-шник.
Но вот в самой среде (вижуал студия 2008) невозможно ее выполнить. Всмысле при нажатии "Start Debaggung" запускается, и не прекращает работу.
Что это может значить? И как с этим бороться?
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
07.06.2009, 22:44     обработка строк #4
zDDfix: Подключи библиотеку хорошую, вот-так:

C++
1
#include <мозг>
P.S: После регулярного включения этой библиотеки, как правило, ошибок стает меньше
zDDfix
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 5
07.06.2009, 22:50     обработка строк #5
Search.., ошибок нет. Внимательно читал, что у меня не получается?
Ты бы лучше ответил на вопрос, чем язвил бородатыми приколами.
Somebody
2779 / 1593 / 142
Регистрация: 03.12.2007
Сообщений: 4,175
Завершенные тесты: 1
08.06.2009, 14:39     обработка строк #6
С такими вопросами лучше обращаться в "Битву экстрасенсов", может кто и ответит. У меня есть 2 предположения:
0) Эта версия Visual Studio не поддерживает русские названия файлов, то есть в #include вместо <мозг> надо писать <brain>.
1) В текущей папке (обычно .\debug относительно папки с проектом) нет Strings.txt, условие !fin.eof() никогда не выполняется, и всё зависает на этом цикле.
zDDfix
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 5
08.06.2009, 18:41     обработка строк #7
Видимо, я не точно выразил суть проблемы. Ну, во всяком случае, любой программист должен иметь чуток сверхспособностей.
Расшифровываю:
Если запустить файл имя_моего_проекта.ЕХЕ, то все работает как положено: программа запускается, тут же закрывается, и в файле output.txt я вижу результат работы.
Если запустить программу из самой среды (Start Debugging или Start Without Debugging), то открывается консоль....и не закрывается, пока не закроешь ее принудительно; и, естественно, файл output.txt даже не создается.
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
08.06.2009, 18:58     обработка строк #8
zDDfix: Насчет "сверхспособностей" - я согласен ! Я, к примеру, летать умею, ыы

Добавлено через 4 минуты 56 секунд
Ааа, я понял, что ты от нас хочешь... Короче вот два варианта, как можно исправить это:

1) Пишешь это перед return (в main):

C++
1
getchar();
2) Подключаешь это:

C++
1
#include <stdlib.h>
и перед return (в main), пишешь это:

C++
1
system("pause");
Твоя проблема решена..
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
08.06.2009, 19:02     обработка строк #9
Цитата Сообщение от Search.. Посмотреть сообщение
2) Подключаешь это:
C++
1
#include <stdlib.h>
Зачем?
оно и так работает.
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
    system("pause");
    return 0;
}
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
08.06.2009, 19:08     обработка строк #10
Ты же наверное знаешь, как я пишу код:

C++
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <locale.h>
 
int main(int argc, char * argv [])
{
    setlocale(LC_ALL,"Rus");
    puts("Боже мой!!! Боже мой! Я умею летать!!!");
    system("pause");
    return 0;
}
На этот код выдаст ошибку, насчет system("pause");
То есть, если нет iostream'а, то stdlib обязателен...
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
08.06.2009, 19:12     обработка строк #11
Ну если так то ладно.
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
08.06.2009, 19:13     обработка строк #12
Спасибо за то, что дали добро, Синсей)))))
zDDfix
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 5
08.06.2009, 20:46     обработка строк #13
Search.., вот блин, опять не то. Как задержать выполнение программы я знаю.
Тот факт, что консоль открывается, выполняется программа и сразу же закрывается, если два раза клецнуть на файлик ехе, меня как раз устраивает.
Мне не нравится, что программа не завершается, если запускать ее прямо из Visual Studio.

Ну, в общем ладно, я ушел в себя...по локоть....лучше сам напишу че нить.
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
08.06.2009, 21:05     обработка строк #14
Мда... Телепаты в отпуску (с) хз
zDDfix
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 5
09.06.2009, 03:32     обработка строк #15
Ну я уже не могу!!
Search.., , либо ты тупой, либо ты не воспринимаешь длинных предложений.....

В любом случае, "мозг" необходимо подключить тебе.
На форуме винград мне ответили еще вчера.

ЛАСКАВО ПРОСИМО, А НАЗАД ВИНОСИМО!!

Самое интересное то, что мерятся членами - неблагодарное дело. И это ты поймешь когда-нибудь.
Ололо!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2009, 03:42     обработка строк
Еще ссылки по теме:

Обработка строк C++
C++ Обработка строк
C++ Обработка строк
C++ Обработка строк
C++ Обработка строк

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

Или воспользуйтесь поиском по форуму:
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
09.06.2009, 03:42     обработка строк #16
Да то ты на форум телепатии зашел...

Добавлено через 1 минуту 41 секунду
По-моему, не стоит обижаться на меня. Ведь я пытался помочь... Заметь, никто не понял, что ты хочешь. Это же не означает то, что все программисты, которые заглядывали в эту тему - тупые...
Yandex
Объявления
09.06.2009, 03:42     обработка строк
Ответ Создать тему
Опции темы

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