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

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

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

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

30.09.2012, 13:48. Просмотров 961. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 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();
}
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 14:47  [ТС]     Вывод символов из файла в обратном порядке #3
в результате печатает каждое слово в том же порядке, с заменой символов в обратном и выводит каждое слово с новой строки - как отменить, чтобы печатало в строчку?
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
30.09.2012, 14:50     Вывод символов из файла в обратном порядке #4
Надо чтобы слова выводились начиная с последнего?
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 15:02  [ТС]     Вывод символов из файла в обратном порядке #5
да...и наверно лучше бы в строчку
MrCold
852 / 750 / 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();
}
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 15:12  [ТС]     Вывод символов из файла в обратном порядке #7
а как еще можно дополнить, чтобы сохраняло пробелы между словами?
MrCold
852 / 750 / 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)
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 16:46  [ТС]     Вывод символов из файла в обратном порядке #9
а куда именно это дописать и что это означает?
Петррр
5942 / 3379 / 336
Регистрация: 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2012, 17:15     Вывод символов из файла в обратном порядке
Еще ссылки по теме:
Вывод слов в обратном порядке C++
C++ Вывод в символьном массиве в обратном порядке
C++ Вывод аргументов printf() в обратном порядке
C++ Вывод элементов массива в обратном порядке
Вывод слов из предложения в обратном порядке C++

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

Или воспользуйтесь поиском по форуму:
dimas28
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 19
30.09.2012, 17:15  [ТС]     Вывод символов из файла в обратном порядке #11
спасибо...а можете объяснить принцип выполнения данной программы
Yandex
Объявления
30.09.2012, 17:15     Вывод символов из файла в обратном порядке
Ответ Создать тему
Опции темы

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