Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Чтение из файла


Автор: m0dest 4.3.2007, 21:35
Подскажите, пожалуйста, как прочитать содержимое из файла последовательного доступа
в массив строк.

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

Автор: boriska 5.3.2007, 17:36
Для чтения построчно используй 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;
}


Автор: threef 7.3.2007, 16:51
Код

// и начерта мне этот 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;

}

Автор: CrasyMen 7.3.2007, 21:27
threef,  можеш добавить в свой пост коментарии?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)