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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2013, 16:34   #1
Slavakin
 
Регистрация: 03.11.2013
Сообщений: 5
Восклицание Помогите . Проблема с поиском последовательностей цифр в строках

Уважаемые програмисты , очень нужна ваша помощь , надо написать програму , которая находит в тексте (состоящем из строк , количество которых , максимум 14 , а символов в строке - максимум 70) последовательности цифр. И ну конечно вывести эти последовательности на экран. Ломаю себе голову уже 2 дня . Никак не могу представить себе алгоритм. Если до завтра не зделаю прогу , мне конец. Текст загружается с файла , и выводится на екран . Но только загрузить с файла и вывести у меня получилось , и больше ничего . Помогите , очень надо.
Код:
#include<fstream.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>


 struct tex {
 char S[70];
 int i;};
 char *FName="C://text.dat";

 main()
{

 ifstream in1(FName);
 tex mas[14];
for (int i=0; i<14;i++)
         {in1.getline(mas[i].S,70);}
         for (int i=0; i<14;i++)
         {cout<<mas[i].S<<endl;
       getch();}




}

Последний раз редактировалось Stilet; 03.11.2013 в 17:33.
Slavakin вне форума Ответить с цитированием
Старый 03.11.2013, 17:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
main()
Main got... Тебя где этому научили?

Вот как бы я думал:
Код:
 
 ifstream in1(FName);
	in1.seekg(0,ios_base::end);
	int i=in1.tellg();
	in1.seekg(0,ios_base::beg);
	char *s=new char[i];
	in1.read(s,i);
	in1.close();
 bool b=false;
 for (int j=0; j<i;j++) 
   if(s[j]>='0' && s[j]<='9'){b=true; cout<<s[j];}
   else { if(b) cout<<'\n'; b=false;}
 delete[] s;
 getch();
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2013, 17:48   #3
Slavakin
 
Регистрация: 03.11.2013
Сообщений: 5
Хорошо

Спасибо большое , работает хорошо , только обьясните пожалуйста суть
seekg. Буду очень благодарен .
Slavakin вне форума Ответить с цитированием
Старый 03.11.2013, 17:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

seekg в данном случае помещает указатель файла в его конец, чтоб tellg смог дать размер файла. После получения размера я могу создать массив, и навтолкать в него символы из файла, чтоб дальше уже работать с массивом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2013, 18:05   #5
Slavakin
 
Регистрация: 03.11.2013
Сообщений: 5
Вопрос

Извините за наглость , но у меня возник еще один вопрос , я немношко переписал код и вивел сначала текс из файла , а потом последовательности , а возможен ли вариант , виделения последовательностей в тексте просто другим цветом ???
Код:
main()
{
  ifstream in1(FName);
	in1.seekg(0,ios_base::end);
	int i=in1.tellg();
	in1.seekg(0,ios_base::beg);
	char *s=new char[i];
	in1.read(s,i);
	in1.close();
  for (int j=0;j<i;j++)
    {cout<<s[j];}
    cout<<"\n"<<"\n";

 bool b=false;
 for (int j=0; j<i;j++)
   if(s[j]>='0' && s[j]<='9'){b=true;cout<<s[j];getch();}
   else { if(b) cout<<'\n'; b=false;}
 delete[] s;
 getch();

}
один getch() лишний

Последний раз редактировалось Stilet; 03.11.2013 в 19:46.
Slavakin вне форума Ответить с цитированием
Старый 03.11.2013, 19:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
просто другим цветом
Компилируешь под какую ОСь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2013, 19:56   #7
Slavakin
 
Регистрация: 03.11.2013
Сообщений: 5
По умолчанию

Borland C++ 6.0 на Xp
Slavakin вне форума Ответить с цитированием
Старый 03.11.2013, 20:20   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда изучай функции Win API работы с консолью.
Точнее функцию SetConsoleTextAttribute()
Пример:
Код:
    HANDLE display;
    display = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(display,FOREGROUND_BLUE|FOREGROUND_INTENSITY);
Сделает фон букв ярко красным.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с поиском. С NewLamer&Programer Помощь студентам 43 18.06.2013 22:44
Проблема в строках Homee Помощь студентам 2 11.04.2012 14:32
Задачи на обработку строк: удалить каждую 3-ю букву, найти кол-во гласных, кол-во цифр в строке,совпадения в 2-х строках Ирина93 Паскаль, Turbo Pascal, PascalABC.NET 6 05.11.2011 22:10
Поиск совпадающих ЦИФР в Memo! (не путать с поиском строк!) NiKiToZZ- Помощь студентам 14 31.01.2011 03:52
Проблема с поиском в БД Evgenii БД в Delphi 15 25.06.2009 00:14