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

Корректно разобрать текст, удаляя лишние символы и вывести каждый новый элемент на отдельной строке - C++

Восстановить пароль Регистрация
 
den790
 Аватар для den790
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 40
24.03.2012, 17:50     Корректно разобрать текст, удаляя лишние символы и вывести каждый новый элемент на отдельной строке #1
Задание: Прочитать текст из файла. Данные при этом могут быть представлены некорректно: возможно использование множества пробелов, переводов строк, знаков табуляций в любом месте до, после и внутри скобок, задающих координаты геометрических фигур. Требуется корректно разобрать текст, удаляя лишние символы и вывести каждый новый элемент на отдельной строке. Результат вывести на экран с помощью потоковых функций.
Формат, задающий вид и координаты фигур, следующий:
Line(x1, y1, x2, y2)
Circle(x, y, r)
Ellipse(x1, y1, x2, y2)
Rectangle(x1, y1, x2, y2)
Есть решение этой задачи, но никак не могу понять как работает. Помогите, пожалуйста, разобраться с кодом.

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
#include "stdafx.h"
#include<iostream>
#include<istream>
#include<sstream>
#include<fstream>
 
using namespace std;
 
void main(){
  char str[200];
  char name[50];
 
  ifstream in( "in", ios_base::in | ios_base::out );
  istringstream strin( ios_base::in | ios_base::out );
  ostream out( strin.rdbuf() );
  
  while(in >> skipws >> str){
    if(str[0] == 'L' || str[0] == 'C' || str[0] == 'E' || str[0] == 'R')
      out << endl;
    out << str;
  }
 
 while(strin.getline(str,256)){
      if(str[0] == 'L' || str[0] == 'C' || str[0] == 'E' || str[0] == 'R'){
      sscanf(str,"%s",&name);
      cout << name << "\n";
      }
 
  } 
  int a;
  scanf("%d",&a);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 17:50     Корректно разобрать текст, удаляя лишние символы и вывести каждый новый элемент на отдельной строке
Посмотрите здесь:

C++ Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены и переписать новый текст в файл D
C++ отредактировать предложение ,удаляя из него лишние пробелы...
C++ Массив и указатели. Вывести на экран весь массив и на отдельной строке - значение минимального элемента массива
Получите новый массив, каждый элемент которого равен сумме соответствующего исходного элемента и его квадрата C++
Отредактировать предложение, удаляя из него лишние пробелы C++
Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы C++
C++ Задача Иосифа Флавия. Удалить каждый второй элемент из списка и в конце вывести на экран последний оставшийся элемент
Вставить после данного элемента списка новый элемент, и вывести указатель на добавленный элемент C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru