Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение из файла 
:(
    Опции темы
TaNK
Дата 24.1.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Код

         //22.01.2008 17:12:45
#include <vcl.h>
#include <iostream>
#include <fstream>
#include <cctype>

int main()
{
  using namespace std;
  char filename[60],ch;
  float fl;
  ifstream ifile;
  cout << "Vvedite nazvanie faila - ";

  cin.getline(filename,60);
  ifile.open(filename); // открываем выбранный файл

  if (!ifile.is_open())
     {
       cout << "Neniden fail";
       cin.get();
       exit(EXIT_FAILURE);
     }

  int count = 0;

  ifile >> fl;

  float *fl_mas = new float [10]; // массив из 10 float

  while (!ifile.eof())
   {

    /* if (isdigit(fl)) если так закоментить он будет читать числа из файла и запихивать в массив
       { а если в файле не числа...пробывал использовать cctype, но не прокатывает...потому что как я понимаю проверяет только первый символ или я запутался...кто предложит...что мне надо сделать..направьте на правильный путь*/ 
          fl_mas[count] = fl;  // загоняем в массив элементы находящиеся в файле
          count++;
          ifile >> fl;
     /*  }*/ 


   }

  cout << count << " " << endl;

  for (int i = 0; i < count; i++)
    cout << fl_mas[i]<< " ";

  ifile.close(); // закрываем файл
  delete [] fl_mas; // удаление памяти выделеной под массив float

  cin.get();
  return 0;
 }


Это сообщение отредактировал(а) TaNK - 24.1.2008, 17:59


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
ptr
Дата 24.1.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 1
Всего: 14



TaNK, код конечно очень информативен, вот только понять что требуется из него сложно.

Это сообщение отредактировал(а) ptr - 24.1.2008, 18:56


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
archimed7592
Дата 24.1.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(TaNK @  24.1.2008,  17:58 Найти цитируемый пост)
направьте на правильный путь

Ты зачем-то выложил 50 строк кода, который совершенно не несёт никакой смысловой нагрузки и который содержит всего 2 строки комментариев, которые достаточно неясно описывают проблему. Правильный путь: описать свою проблемму русским языком, при необходимости, снабжая минимальным кодом, причём, больше внимания уделить описанию проблемы, а не вставлению простыни кода.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TaNK
Дата 25.1.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



прощу прощение за некоректный вопрос.
в данном коде я читаю из файла, который введен пользователём и сохраняю данные в массив. В файле данные могут быть такими
Код

1.txt
4401 4458
4803 2009

а может быть вот таким
Код

2.txt
22.10.2007  4401 4458
23.10.2007  4803 2009

если читать 1.txt сохраняет данные в массив нормально, но как пропускать из 2.txt дату...чтобы сохранять только числовые значения.


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Lycifer
Дата 25.1.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



Простой способ если ты знаеш если ли дата в документе,
Конечно можно сделать разбитие строки, а потом проверку на точку,
ну тут станет вопрос что делать если ты хочеш перевести в double
ну в принципе у даты две точки, так что если имеется две точки то не записывать в массив.
PM MAIL ICQ   Вверх
mrbrooks
Дата 25.1.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Насамом деле первое что приходит в мозг - это считывать все в строки - а затем при записи в массив просто их проверять на вхождение '.' в строку ф - й strchr(). 
PM MAIL   Вверх
archimed7592
Дата 25.1.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



TaNK, как уже сказали - лучше считывать строку полностью, после чего уже выкидывать из неё дату(если она есть). Только если не хочешь изобретать велосипед из strchr, то посмотри в сторону регулярных выражений. По наличию vcl.h в твоём коде я делаю вывод, что ты пользуешься билдером, который полностью поддерживает дельфёвую RTL, которая, IIRC, содержит необходимую ф-циональность для работы с регулярками.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TaNK
Дата 25.1.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(archimed7592 @ 25.1.2008,  14:58)
TaNK, как уже сказали - лучше считывать строку полностью, после чего уже выкидывать из неё дату(если она есть). Только если не хочешь изобретать велосипед из strchr, то посмотри в сторону регулярных выражений. По наличию vcl.h в твоём коде я делаю вывод, что ты пользуешься билдером, который полностью поддерживает дельфёвую RTL, которая, IIRC, содержит необходимую ф-циональность для работы с регулярками.

archimed7592 - если можно привести пример..не обязательно на моем коде..


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
archimed7592
Дата 25.1.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Могу показать пример с бустовым регеэкспом... или с Qt'шными. Но захочешь ли ты ставить себе буст или Qt(ни один из которых "просто так" на билдер не встанет)?
А билдера у меня, соответственно и хэлпа по нему. Просто слышал, что дэльфёвая RTL "слышала" про регулярки, подробнее не знаю, но регулярки - они и в африке регулярки smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
TaNK
Дата 25.1.2008, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(archimed7592 @ 25.1.2008,  15:58)
Могу показать пример с бустовым регеэкспом... или с Qt'шными. Но захочешь ли ты ставить себе буст или Qt(ни один из которых "просто так" на билдер не встанет)?
А билдера у меня, соответственно и хэлпа по нему. Просто слышал, что дэльфёвая RTL "слышала" про регулярки, подробнее не знаю, но регулярки - они и в африке регулярки smile.

спасибо з совет!


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.