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

Считать строки файла и поместить в динамический массив строк - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.82
ruslan_bastos
1 / 1 / 0
Регистрация: 10.12.2012
Сообщений: 17
10.12.2012, 07:28     Считать строки файла и поместить в динамический массив строк #1
Ребята помогите.

Нужно считать с файла, в котором 1 строка - 1 слово, строки и поместить их в динамический массив строк типа char *mas[20] = {NULL}.
Вот пример, но он не ошибочен:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
                FILE *fp;
                fp=fopen("input.txt","r");
 
                                             char *mas[20] = {NULL};
                                             char mas2[20];
 
                int i = 0;
                if(fp == NULL)
                {
                    printf("\nОшибка открытия файла...");
                }
                else
                {
                    while(!feof(fp))
                    {
                        i++;
                        fgets(mas2, 20, fp);
                        strcpy(mas[i], mas2);
                                                                 
                    }
                    printf( "\nФайл прочитан.");
                }
                 fclose(fp);
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 07:28     Считать строки файла и поместить в динамический массив строк
Посмотрите здесь:

C++ Считать строку в динамический массив
C++ Считать данные из файла в динамический массив соответствующего типа
C++ Считать квадратную матрицу в динамический массив.
Создать динамический массив строк, заполнить его и потом добавить строку после самой короткой строки C++
Файл: Считать все числа из файлав динамический массив C++
C++ Считать строки из файла в массив ++
C++ Не могу считать матрицу из файла в динамический массив
C++ Возможно ли объекты и потомки этих объектов поместить в один и тот же динамический массив?
Поместить все символы, находящиеся в стеке, в динамический массив, вывести на экран содержимое массива C++
C++ Поместить данные в динамический массив
C++ Считать матрицу в динамический массив
Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.12.2012, 07:44     Считать строки файла и поместить в динамический массив строк #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1. Ты не создал массив
C++
1
char *mas[20] = {NULL};
.
2. Зачем копировать, когда можно сразу
C++
1
 fgets(mas[i], 20, fp);
?
3. Так как количество строк заранее не известно, то или массив должен расти по мере чтения строк, или файл надо прочитать дважды, первый раз в буфер на одну строку и сосчитать количество строк, а потом создать массив и уже тогда читать в массив.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
char *mas[20]=NULL;
size_t count=0;
char **buffer;
FILE *fp;
fp=fopen("input.txt","r");
if(fp == NULL)
{
 printf("\nОшибка открытия файла...");
}
else
{
 while(!feof(fp))
 {
  Buffer=new char[Count+1][20]; // Не уверен в синтаксисе этой строки, ни когда не работал с динамическими массивами статических массивов.
  fgets(Buffer[Count], 20, fp);
  if (mas)
  {
   delete [] mas;
  }
  mas=Buffer;
  ++Count;
 }
 printf( "\nФайл прочитан.");
}
fclose(fp);
Yandex
Объявления
10.12.2012, 07:44     Считать строки файла и поместить в динамический массив строк
Ответ Создать тему
Опции темы

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