12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127
1

Считывание из файла в массив строк

10.05.2013, 16:55. Показов 874. Ответов 3
Метки нет (Все метки)

Например в файле:

jfgjfjgfjkjdf32vsdf1
342rdfrg
3524t6yrfdh3
er2etg

И тд
Надо чтобы создался массив char из четырех строк, и соответственное в str[0] записалась первая строка, в str[1] вторая и тд
И как правильно выделить память под них?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2013, 16:55
Ответы с готовыми решениями:

Считывание строк из файла и запись в массив
Добрый день. Вопрос такой, у меня в файле находится произвольное количество строк и столбцов чисел...

Считывание строк из файла
Помогите, пожалуйста, нужно на завтра две прграммы написать, но не получается(( 1) считать из...

Считывание строк из файла
Здравствуйте, подскажите, пожалуйста, как организовать чтение строк из файла при помощи...

Считывание строк из файла
При считывании из файла читаются всего 3 строки. void rab::xinputfile() // vvod iz...

3
414 / 410 / 95
Регистрация: 06.10.2011
Сообщений: 832
10.05.2013, 18:24 2
А вектор не подойдёт?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
#include <fstream>
 
using namespace std;
 
typedef istream_iterator<string> str_in;
typedef ostream_iterator<string> str_out;
 
int main()
{
    ifstream text("text.txt");
 
    vector<string> vec( str_in(text), ( str_in() ) ); //считывание
 
    copy( vec.begin(), vec.end(), str_out(cout, "\n") ); //вывод
 
    return 0;
}
1
12 / 7 / 3
Регистрация: 06.01.2013
Сообщений: 127
11.05.2013, 01:00  [ТС] 3
Нет, к сожалению вектор не подойдет
Я вот думаю, например надо будет подсчитать кол-во элементов во всех строках и выделить столько памяти под весь массив, потом при помощи реаллок выделять память при считывании для каждой строки? Или как еще?

Добавлено через 15 минут
Собственно у меня в том и проблема, что мне не понятно как выделять память под все это, потому что по сути считать все это не проблема, а вот как правильно выделять память для подобных конструкций из N строк с произвольным кол-ом символов мне не понятно

Добавлено через 5 часов 56 минут
Вот например на самом примитивном примере объясните что не так и как надо

C++
1
2
3
4
5
6
7
8
9
char **txt=(char**)malloc(200);
 
  while(f.eof()){
      txt[k]=(char*)malloc(200);
  while(txt[k][i-1]!='\n')
  {
  f.get(txt[k][i]); i++;
  } k++; i=0;
  }
0
13 / 13 / 8
Регистрация: 22.04.2012
Сообщений: 99
11.05.2013, 03:21 4
Действительно, если использоваться хотя бы vector, то всё гораздо приятнее. Но в вашем случае можно и сходить с ума с realloc. А вообще даже в олимпиадах по программированию в формат исходного файла обязательно входит количество строк и чуть ли не их максимальная длина (максимальная Вас должна устроить). Поэтому в начале Вашего примера следует поставить число 4, ну и через пробел ещё можно что-нибудь для максимальной длины строки. Это гораздо разумнее чем realloc по миллиону раз вызывать.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2013, 03:21
Помогаю со студенческими работами здесь

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

Считывание из файла массива строк
Ув. товарищи! Помогите плз. Нужно реализовать функцию, заполняющую из файла массив строк. Что то...

Считывание строк из файла и сортировка , C++
Дело в том , что при считывании из файла последнюю строку считывает 2 раза. Прочитал в интернете...

Считывание из файла строк с getline()
Код из интернета, который работает у автора, но не у меня. Ошибка: Call to undefined function...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru