Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
#1

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

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

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

jfgjfjgfjkjdf32vsdf1
342rdfrg
3524t6yrfdh3
er2etg

И тд
Надо чтобы создался массив char из четырех строк, и соответственное в str[0] записалась первая строка, в str[1] вторая и тд
И как правильно выделить память под них?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2013, 16:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание из файла в массив строк (C++):

Считывание строк из файла - C++
При считывании из файла читаются всего 3 строки. void rab::xinputfile() // vvod iz file { ifstream fin; // delete x;...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 831
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
Wladius
12 / 7 / 2
Регистрация: 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 / 1
Регистрация: 22.04.2012
Сообщений: 99
11.05.2013, 03:21 #4
Действительно, если использоваться хотя бы vector, то всё гораздо приятнее. Но в вашем случае можно и сходить с ума с realloc. А вообще даже в олимпиадах по программированию в формат исходного файла обязательно входит количество строк и чуть ли не их максимальная длина (максимальная Вас должна устроить). Поэтому в начале Вашего примера следует поставить число 4, ну и через пробел ещё можно что-нибудь для максимальной длины строки. Это гораздо разумнее чем realloc по миллиону раз вызывать.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 03:21
Привет! Вот еще темы с ответами:

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

Считывание строк из текстового файла - C++
Доброго времени суток! Дана задача: Подготовить файл со списком из 20 сотрудников (в каждой строке файла записаны фамилия, имя и...

Поочередное считывание строк из текстового файла - C++
Здравствуйте! Есть текстовый файл в котором, например, 3 строки разной длинны: 11a1a1a1 2b22b2b2b2b2 3n3nnn33 для них есть...

Считывание части строк из файла в кодировке CP866 - C++
Доброго времени суток! Пытаюсь считать из текстового файла в кодировке CP866 текст длинной например в 64 символа с начала каждой строки,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.05.2013, 03:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru