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

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

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2012, 13:48
Ответы с готовыми решениями:

Вывод строки символов в обратном порядке
программа должна выводить зеркально отображенную строку, она работает только когда задаешь...

Вывод массива символов в обратном порядке
Доброго дня. Не могу понять, почему массив символов не печатается, если не убавлять единицу со...

Вывод строки в обратном порядке, замена символов
..может кто нибудь помочь?.. вот это вот надо сделать лёгким способом с помощью char а я...

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

10
1321 / 983 / 267
Регистрация: 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
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 14:47  [ТС] 3
в результате печатает каждое слово в том же порядке, с заменой символов в обратном и выводит каждое слово с новой строки - как отменить, чтобы печатало в строчку?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
30.09.2012, 14:50 4
Надо чтобы слова выводились начиная с последнего?
0
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 15:02  [ТС] 5
да...и наверно лучше бы в строчку
0
873 / 771 / 173
Регистрация: 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
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 15:12  [ТС] 7
а как еще можно дополнить, чтобы сохраняло пробелы между словами?
0
873 / 771 / 173
Регистрация: 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
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 16:46  [ТС] 9
а куда именно это дописать и что это означает?
0
6280 / 3565 / 898
Регистрация: 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
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 17:15  [ТС] 11
спасибо...а можете объяснить принцип выполнения данной программы
0
30.09.2012, 17:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2012, 17:15
Помогаю со студенческими работами здесь

Вывод элементов файла в обратном порядке
Если мне необходимо вывести все элементы файла в обратном порядке, то что мне для этого...

Вывод содержимого файла в обратном порядке
Выведите в обратном порядке содержимое всего файла полностью. Для этого считайте файл целиком при...

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

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

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

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


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

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