Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: файлы с++  (Прочитано 15384 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mary1010
Интересующийся

ua
Offline Offline
Пол: Женский

« : 21-12-2012 20:49 » 

Помогите пожалуйста!!!
не знаю с чего начать...

необходимо для каждой строки файла переставить первое и среднее слово. Результат записать в файл.

я знаю, как открыть файл, но как найти первое и среднее слово...
Записан
Dmitry
Помогающий

ru
Offline Offline

« Ответ #1 : 21-12-2012 21:15 » 

Не получается на словах алгоритм составить, или реализовать его в программе?
Записан
mary1010
Интересующийся

ua
Offline Offline
Пол: Женский

« Ответ #2 : 21-12-2012 22:04 » 

Не получается на словах алгоритм составить, или реализовать его в программе?
не понятно, как в строке получить среднее слово....те , я так понимаю, нужно как-то принять пробел за разделитель и подсчитать все слова в строке, их сумму разделить на количество и получить среднее слово? а если это значение окажется не целым?и как поменять 1 и среднее слова???+даже не представляю, как это реализовать....
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 21-12-2012 22:23 » 

mary1010,
С первым словом понятно, казалось бы

Что является ограничителем слова

Как посчитать количество слов в тексте

Что такое среднее число

как найти среднее слово.

поставь себе такие вопросы, и попытайся на них ответить
« Последнее редактирование: 21-12-2012 22:25 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
mary1010
Интересующийся

ua
Offline Offline
Пол: Женский

« Ответ #4 : 22-12-2012 15:05 » 

mary1010,
С первым словом понятно, казалось бы

Что является ограничителем слова

Как посчитать количество слов в тексте

Что такое среднее число

как найти среднее слово.

поставь себе такие вопросы, и попытайся на них ответить
Если результат деления получается дробным, то это строка с нечётным количеством слов и среднее слово будет [целая часть] + 1. Если результат - не дробный, то за среднее слово, можно принять, результат самих вычислений, верно?
ограничитель слова - пробел, это очевидно...

но как это реализовать именно на плюсах???можете прописать общий вид необходимых мне операций, функций и тд?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 22-12-2012 15:44 » 

Ограничителем слова может быть также и не только пробел Улыбаюсь Также например и запятая и точка и также символы перевода строки (Для windows мира это последовательность 0x0A, 0x0D. )

Эта задача легко реализуется с помошью метода "конечные автоматы". Если вы его проходили конечно.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 22-12-2012 17:18 » 

Finch, у меня подозрение, что в учебных целях там, скорее всего, жёстко 1 пробел (и только пробел) между словами.
mary1010, начни с подсчёта числа слов: подумай, какие условия описывают, что началось новое слово, или что оно закончилось? Finch правильно говорит про конечные автоматы, но тут даже общей теории знать не нужно, достаточно сконцентрироваться на том, как запомнить, где мы находимся на каждом шаге: внутри слова или инет.
Записан
mary1010
Интересующийся

ua
Offline Offline
Пол: Женский

« Ответ #7 : 22-12-2012 20:44 » 

разделитель - пробел и только пробел))все таки лабораторную в универ делаю, можно по-проще)

такой код в итоге...но, при вводе имени файла (ПРАВИЛЬНОГО!), все равно получаю:wrong file name!....почему??

Код: (C++)
  1. #include <fstream>
  2. #include <algorithm>
  3. #include <iterator>
  4. #include <vector>
  5. #include <sstream>
  6. #include <vcl.h>
  7. #include <iostream>
  8. #include <conio.h>
  9. using namespace std;
  10. int main()
  11. {
  12.  cout << "Enter a file name:"  ;
  13. //entering a file name using keyboard
  14. std::string name;
  15. std::cin >> name;
  16. std::ifstream ifs(name.c_str());
  17. if (! ifs)
  18.         {  cout<<"wrong file name!";
  19.            exit (1);  
  20.         }
  21.      else{
  22.     std::ofstream o("result.txt");
  23.     if (!ifs) return 1;
  24.     std::string str;
  25.     while (!ifs.eof() && std::getline(ifs, str))
  26.     {
  27.         std::istringstream ist(str);
  28.         std::vector<std::string> v;
  29.         std::copy(std::istream_iterator<std::string>(ist),
  30.                   std::istream_iterator<std::string>(), std::back_inserter(v));
  31.         std::swap(*v.begin(), *(v.begin() + v.size() / 2));
  32.         std::copy(v.begin(), v.end(), std::ostream_iterator<std::string> (o, " "));
  33.         o << std::endl;
  34.     }  }
  35.     system("pause");
  36.     getch();
  37.     }
« Последнее редактирование: 22-12-2012 21:02 от RXL » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 22-12-2012 21:02 » 

Ты уверена, что этот код компилируется? Текст почти кошерен, но явно есть изъяны. Строка 34.

Хотя, не — пойдет...Нехороши код.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
mary1010
Интересующийся

ua
Offline Offline
Пол: Женский

« Ответ #9 : 22-12-2012 21:21 » 

Нехороши код.
что поменять?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 22-12-2012 22:02 » 

Форматировать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
mary1010
Интересующийся

ua
Offline Offline
Пол: Женский

« Ответ #11 : 22-12-2012 22:33 » 

Форматировать.
форматирование не решает проблему с открытием файла, которая все еще существует.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 22-12-2012 22:34 » 

Зато облегчает понимание.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #13 : 23-12-2012 04:57 » new

Честно говоря, не понял. Что ты именно хотела сказать в 17 строчке. Есть специальный метод, который проверяет корректность открытия файла. http://www.cplusplus.com/reference/ios/ios/good/ Хотя это вполне может быть и специфика Borland.
« Последнее редактирование: 23-12-2012 05:08 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines