Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (14.04.2012 в 19:48)
Не уверен, что смогу вам до конца помочь, вот вариант построчного чтения с целью создания двумерного массива в памяти
#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
  FILE * pFile = NULL;
  int n = 0;
  char buffer[80];
  char **contents;

  // Открываем файл
  pFile = fopen ("D:\\crypt.txt""r");
  if (!pFile != NULL)
  {
    cout << "Ошибка открытия файла" << endl;
    return 0;
  }
  // Подсчитываем количество строк в файле
  while (fgets (buffer, 80, pFile)) n++;
  // Резервируем память под содержимое файла
  contents = new char *[n];
  for(int i = 0; i < n; i++)
  {
    contents[i] = new char[80];
  }
  // Устанавливаем файловый укзатель в начало
  fseek(pFile, 0, SEEK_SET);
  for(int i = 0; i < n; i++)
  {
    fgets(contents[i], 80, pFile);
  }
  // Закрываем файл
  fclose (pFile);
  // Освобождаем паять
  for(int i = 0; i < n; i++)
  {
    delete [] contents[i];
  }
  delete [] contents;
  system("PAUSE");
  return 0;
}
Однако, вам, как выяснилось, этот вариант не подойдет, так как у вас позиции могут быть многострочными.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: