Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

SaDFromSpb



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
#include <iostream>  
#include <fstream>  
#include <sstream>
using namespace std;
 
#define STRINGBUFFER_SIZE 256
#define P_WORD "price"

 
 
//функция "проглатывает" строку str, если она равна "price"
//если же она начинается со слова "price", то поток **in_s
//инициализируется тем что после него
 
bool parse(const char* str, istringstream** in_s) {
    if (strcmp(str, P_WORD)==0)
        return true;
    else {
        int wlen = strlen(P_WORD);
        int slen = strlen(str);
        if (slen > wlen && memcmp(str, P_WORD, wlen)==0) {
            const char* p = &str[wlen];
            delete *in_s;
            *in_s = new istringstream(p);
            return true;
        } else {
            return false;
        }
    }
}
 
 
int main(int argc, char* argv[]) {
 
  ifstream in_f ("Svod.txt");
  ofstream out_f;
 
  if (!in_f) {
    cerr << "ERROR: Can't open \"input.txt\"" << endl;
    return 1;
  }
 
 
  char sch[STRINGBUFFER_SIZE];
  int line_q = 0;
  while (in_f.getline(sch, STRINGBUFFER_SIZE)) {
    istringstream* s = new istringstream(sch);
    line_q++;
    while (*s >> sch) {
      if (parse(sch, &s)) {
         if (!(*s >> sch)) {
            cerr << "ERROR: There is nothing after \"price\" at line " << line_q << endl;
            return 2;
         }  
         out_f.open(strcat(sch, ".txt"));
         out_f.close();
         delete s;
         break;                
      }  
    }  
  }  
   
   
  return 0;  
}


Всего записей: 209 | Зарегистр. 22-06-2004 | Отправлено: 02:08 04-02-2006 | Исправлено: SaDFromSpb, 02:41 04-02-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru