Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2012, 00:41   #1
mary1010
Пользователь
 
Регистрация: 16.09.2012
Сообщений: 14
Восклицание файлы с++

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

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

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

Последний раз редактировалось mary1010; 22.12.2012 в 02:02.
mary1010 вне форума Ответить с цитированием
Старый 22.12.2012, 08:34   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Логика Ваших рассуждений верна. Нужно использовать два класса TStringList и AnsiString.
В TStringList, мы загружаем весь файл. В AnsiString, производим анализ строки.
Если результат деления плучается дробным, то это строка с нечётным количеством слов и среднее слово будет [целая часть] + 1. Если результат - не дробный, то за среднее слово, можно принять, как результат самих вычислений, так и [целая часть] + 1. Но это на Ваше усмотрение.
Так-же нужно учесть и то, что строка может быть пустой, содержать одно или два слова.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 22.12.2012 в 08:37.
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.12.2012, 00:36   #3
mary1010
Пользователь
 
Регистрация: 16.09.2012
Сообщений: 14
По умолчанию

но, при вводе имени файла (ПРАВИЛЬНОГО!), все равно получаю:wrong file name!....почему??
Код:
#include <fstream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <sstream>
#include <vcl.h>
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
 cout << "Enter a file name:"  ;
//entering a file name using keyboard
std::string name;
std::cin >> name;
std::ifstream ifs(name.c_str());
if (! ifs)
        {  cout<<"wrong file name!";
           exit (1);  
        }

     else{
    std::ofstream o("result.txt");
    if (!ifs) return 1;
    std::string str;
    while (!ifs.eof() && std::getline(ifs, str))
    {
        std::istringstream ist(str);
        std::vector<std::string> v;
        std::copy(std::istream_iterator<std::string>(ist),
                  std::istream_iterator<std::string>(), std::back_inserter(v));
        std::swap(*v.begin(), *(v.begin() + v.size() / 2));
        std::copy(v.begin(), v.end(), std::ostream_iterator<std::string> (o, " "));
        o << std::endl;

    }  }
    system("pause");
    getch();
    }
так в результате получилось)

Последний раз редактировалось mary1010; 23.12.2012 в 00:45.
mary1010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Файлы (текстовые файлы) Finn4ik Помощь студентам 0 25.04.2011 21:42
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53