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

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

Войти
Регистрация
Восстановить пароль
 
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
#1

Вывод символов из файла в обратном порядке - C++

30.09.2012, 13:48. Просмотров 983. Ответов 10
Метки нет (Все метки)

Собственно основное задание: программа, выводящая символы из файла в обратном порядке.

Есть другая, которая выводит предложения из файла в обратном порядке. Можно ли ее переделать под основное задание?

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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
   //Файл, из которого нужно считать текст
   ifstream fileIn("file.txt");
   string sentence;
   
   //считываем в строку, пока не достигнут конец файла
   while (!fileIn.eof())
      sentence+= fileIn.get();
 
   //Ищем разделитель (конец предложения) (в даном случае точку)
   for (int i = sentence.size()-1; i >= 0; i--)
   {
      if (sentence[i] == '.')
      {
      //И выводим предложения в обратном порядке
            for (int j = i+2; sentence[j-1] != '.'
                              && j < sentence.size(); j++)
                        cout << sentence[j];
            cout << " ";
      }         
   }
   
   //Выводим самое первое предложение
   for (int j = 0; sentence[j-1] != '.' && j < sentence.size(); j++)
      cout << sentence[j];
 
   return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2012, 13:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод символов из файла в обратном порядке (C++):

Вывод строк из файла в обратном порядке - C++
Нужно что бы программа считала текст из файла и записала в другой файл тот же текст, но что бы предложения уже были в обратном порядке. Вот...

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

Сортировка массива в порядке возрастания и вывод элементов в обратном порядке - C++
нашла на форуме пару примеров, но они не полные и не запускаются, выбрала из них более менее подходящий, дальше было много вариантов но не...

Вывод в обратном порядке - C++
Даны два целых числа a и b. Написать программу, которая будет выводить значения а и b в обратном порядке, то есть сначала b, потом а. ...

Рекурсивная функция по записи в массив символов в обратном порядке - C++
Задание: Нужно записать некие символы в массив символов в обратном порядке. В принципе не обязательно рекурсией, но хотелось бы именно так....

Вывод строки в обратном порядке - C++
Тупень возвращается. Имеем функцию для чтения массива в обратном порядке. Смысл ясен, но требуются пояснения в деталях. void...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
30.09.2012, 13:59 #2
Можно вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
#include <string>
#include <algorithm>
#include <fstream> 
 
int main() 
{  
    std::string str; 
    std::ifstream infile; 
    infile.open("Text.txt"); 
    
    while(infile >> str) 
    { 
         reverse(str.begin(), str.end()); 
         std::cout << str << std::endl;
    }  
    infile.close();
}
0
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 14:47  [ТС] #3
в результате печатает каждое слово в том же порядке, с заменой символов в обратном и выводит каждое слово с новой строки - как отменить, чтобы печатало в строчку?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
30.09.2012, 14:50 #4
Надо чтобы слова выводились начиная с последнего?
0
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 15:02  [ТС] #5
да...и наверно лучше бы в строчку
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
30.09.2012, 15:04 #6
Цитата Сообщение от dimas28 Посмотреть сообщение
программа, выводящая символы из файла в обратном порядке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <fstream>
 
void workfile(  std::ifstream &in )
{
    char symbol;
    while(in >> symbol)
    {
        workfile( in);
         std::cout << symbol;
    }
}
 
int main()
{
 
    std::ifstream infile;
    infile.open("Test.txt");
 
  workfile(infile);
    infile.close();
}
1
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 15:12  [ТС] #7
а как еще можно дополнить, чтобы сохраняло пробелы между словами?
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
30.09.2012, 15:19 #8
Цитата Сообщение от dimas28 Посмотреть сообщение
а как еще можно дополнить, чтобы сохраняло пробелы между словами?
в функцию дописать in.unsetf (std::ios::skipws);
C++
1
2
3
        char symbol;
    in.unsetf (std::ios::skipws);
    while(in >> symbol)
0
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 16:46  [ТС] #9
а куда именно это дописать и что это означает?
0
Петррр
5957 / 3394 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
30.09.2012, 16:57 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
 
int main()
{
    std::ifstream ifs("E:\\1.txt");
    std::ostringstream stream;
    stream << ifs.rdbuf();
    ifs.close();
    std::string str = stream.str();
    std::reverse(str.begin(), str.end());
    std::cout << str << std::endl;
}
1
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 17:15  [ТС] #11
спасибо...а можете объяснить принцип выполнения данной программы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2012, 17:15
Привет! Вот еще темы с ответами:

Вывод значений в обратном порядке - C++
День добрый. Написал код по переводу любого числа из десятичной системы в двоичную. Но в двоичной систему значение отображается в обратном...

Вывод предложений в обратном порядке - C++
например ввели текст там 3 предложения : Ночь. Улица. Фонарь. вывод должен быть таков: Фонарь. Улица. Ночь. можно в строку...

Вывод предложения в обратном порядке С++ - C++
Надо сделать так что бы программа выводила слова из предложения в обратном порядке

Вывод слов в обратном порядке - C++
Всем привет. Мне нужно вывести слова в обратном порядке. У меня есть строка &quot;cannot load data&quot;. нужно сделать так, что бы выводило &quot;data...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.09.2012, 17:15
Ответ Создать тему
Опции темы

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