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

Пиши прогу которая вытаскивает email адреса из файла. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Fstream не сохраняются изменения в файле http://www.cyberforum.ru/cpp-beginners/thread326426.html
Написал вот небольшую программку, но почему-то функции не вносят изменения в исходный файл хотя я и указал что надо принимать файл по ссылке, а не копировать его. Где же я сделал ошибку? #include <fstream> #include <iostream> #include <iomanip> #include <string> #include "ClientData.h" using namespace std; void update(fstream&, fstream&);
C++ Теряется значение в переменной Всем привет...думаю всем не важно что надо сдавать мне и так далее :D В общем прошу помощи...есть функция, возвращающая номер столбца с самой длинной серией. Проблема в том что походу значение переменной где то теряется...а я не могу понять где :cry: Привожу код и текст ошибки (Программа компилиться, но выкидывает с error'ом когда должна вывести номер столбца) Функция: int poisk2 (int A,... http://www.cyberforum.ru/cpp-beginners/thread326414.html
Распределение памяти C++
При загрузки таблицы загружаются и пересчитываются формулы в ячейках. Скажите пожалуйста почему при размерах от 100*100(строка*столбец) до, примерно, 5000*100 график зависимости времени от размера растет линейно, а от 5000*100 до 10000*100 квадратичная? Заранее спасибо.
Реализация стека FIFO и LIFO C++
Собственно, если у кого-нить будет время посмотреть мои реализации FIFO и LIFO стеков, и высказать замечания, буду очень признателен =) Обычный FIFO стек, универсальный вроде как, вроде правильно с шаблонами разобрался: template <class T> class Stack { private: struct StackEl; StackEl *top; public:
C++ Ошибка в программе обработки строк http://www.cyberforum.ru/cpp-beginners/thread326404.html
Доброго вечера! Подскажите, пожалуйста, из-за чего ошибка. Есть задача: написать функцию, входными параметрами которой является указатель на строку и два символа. функция должна заменить в строке все вхождения первого символа на символ "*" если рядом с этим символом не стоит второй символ. вот мой код: void zam1(char*,char,char); int main() { char s1="caacaa bcbbbcbbbcbc"; char...
C++ Какая-нибудь реализация функции void Fun (double in, double *out) Подскажите, пожалуйста, какую-нибудь любую реализацию прототипа функции: void Fun (double in, double *out) подробнее

Показать сообщение отдельно
xAtom
913 / 738 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
27.06.2011, 05:31     Пиши прогу которая вытаскивает email адреса из файла.
Вот написал что в голову пришло.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <vcl.h>
#include <ctype.h>
#pragma hdrstop
 
 
#pragma argsused
 
 
// посмотрим сколько растояние  до конца слова
int  pos_next(const char* str) {
    int len = 0;
    do {
         if(! isalnum(*str) && *str != '.' && *str != '-')
              break;
         else
              len++;
    } while(*str++ != '\0');
    str -= 1;
    return (*str == '.' || *str == '-') ? len - 1 : len;
}
 
// продвигаемся назад до  начала слова
int  pos_prev(const char* str, int pos) {
    int len = pos;
    --str;
    while(pos--) {
         if(! isalnum(*str) && *str != '.' && *str != '-')
                break;
         else
                len--;
         --str;
    }
    return len;
}
 
// анализирующея функция
bool  analyzer(const char* str) {
  int  abc = 0, dot = 0;
 
  if(! isalpha(*str) )
        return false;
 
  while(*str != '@' && *str != '\0') {
        if(isalnum(*str))
             abc++;
       if( *str == '.' || *str == '-')
             dot++;
        *str++;
  }
 
  if( dot > 2 || ! abc)
        return false;
 
  dot = abc = 0;
  *str++;
 
  do {
        if(isalpha(*str))
             abc++;
        if( *str == '.')
             dot++;
  } while( *str++ != '\0' );
 
  if( dot > 2 || abc < 2 )
        return false;
 
  return true;
}
 
 
 
 
int main(int argc, char* argv[]) {
 
       AnsiString  text = "";
 
       TStringList*  fp  = new TStringList();
       fp->LoadFromFile("X:\\src.txt");  // открываем файл для парсирования
       text = fp->GetText();
       fp->Clear();
       delete fp;
       fp = NULL;
 
       fp = new TStringList();
 
       const char* str = text.c_str();
       int   pos           = 0;
       do {
 
             if( *str == '@' ) {
                  int first   = pos_prev(str, pos);
                  int last   = pos_next(str + 1);
                  AnsiString test = text.SubString(first + 1, pos - first + last + 1);
                  if(analyzer(test.c_str()))
                        fp->Add(test);
             }
             pos++;
 
       } while( *str++ != '\0' );
 
       fp->SaveToFile("X:\\email.txt");  // сохраняем email в файл, в виде списка
       fp->Clear();
       delete fp;
       fp = NULL;
 
       system("pause");
 
    return 0;
}
 
Текущее время: 08:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru