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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение из файла 
:(
    Опции темы
m0dest
Дата 4.3.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите, пожалуйста, как прочитать содержимое из файла последовательного доступа
в массив строк.
PM MAIL   Вверх
_hunter
Дата 5.3.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ReadFile'ом читаеш из файла побайтно до первого \r или \n и пишеш эти байты в массив строки.
как только нашел \r или \n -- пишеш строку в массив строк, после чего пропускаеш все \r или \n.
начинаеш сначала.
продолжаеш до конца файла...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
boriska
Дата 5.3.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Для чтения построчно используй getline()

Код

#include "stdafx.h"
#include <vector>
#include <string>
#include <fstream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    vector<string> array;
    
    ifstream ifile("text.txt");

    string str;

    while(getline(ifile, str, '\n'))
        array.push_back(str);

    return 0;
}


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


Опытный
**


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

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



Код

// и начерта мне этот cout ?
#include <iostream>
// файловые операции
#include <cstdio>
// строковые функции
#include <cstring>
using namespace std;

// массив символов
typedef char string831[81];

// 2 returna
string831 * add(string831 * array,int &N ,string831 ne)
{
  // создаем увеличенную копию динамического массива строк
  string831 * y = new string831[N+1];
   for(int i=0;i<N;i++)
   {
       strcpy(y[i] , array[i]);
   }
   if(N)
       delete [] array;
   strcpy(y[N],ne);
   // увеличиваем количество элементов
   N++;
  // возвращаем адрес в куче
   return y;
}

main()
{
    string831 * x=NULL,s; int N=0;
     // открываем файл для чтения
    FILE * f = fopen("Dynamic83.cpp","rt");
     // читаем строки
    while( fgets(s,80,f ) )
       // расширяем динамический массив
        x=add(x,N,s);
    fclose(f);
    // vivod masiva x
    cout<<N<<'\n';
    delete [] x;

}


Это сообщение отредактировал(а) threef - 7.3.2007, 21:53
PM MAIL   Вверх
CrasyMen
Дата 7.3.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



threef,  можеш добавить в свой пост коментарии?


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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