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

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

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

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

10.12.2012, 07:28. Просмотров 3772. Ответов 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);
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 07:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считать строки файла и поместить в динамический массив строк (C++):

Считать из текстового файла рандомные числа и поместить в отдельный массив - C++
Помогите,не могу разобраться.Вот у меня есть текстовой файл,в нем скажем есть 30 000 разных чисел,как мне считать из файла рандомных 800...

Не могу считать матрицу из файла в динамический массив - C++
Вот проблемный кусок программы: fstream f (strConst); if (! f) { cout<<"Error_3"; return 1; } int...

Считать данные из файла в динамический массив соответствующего типа - C++
Здравствуйте. Тема динамические структуры. Считать данные из файла в динамический массив соответствующего типа. 1) В файле целых...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Считать строки из файла в массив ++ - C++
Напишите программный код для считывания строк файла в элементы массива. Заранее спасибо!

Поместить данные в динамический массив - C++
Как запомнить char динамический массив при описе? char **map = new char * ; for (int i=0;i<sizey;i++) { map=new char ; } map = ...

1
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);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 07:44
Привет! Вот еще темы с ответами:

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

Считать файл в динамический массив - C++
Считай, ничего сложного. Все должно работать, но после первого же прогона крашится экзешник, повторно не запускается. Считываю файл,...

Считать матрицу в динамический массив - C++
Есть функция для статического массива, как ее переделать в динамический? в файле матрица: 4 4 4 4 4 4 4 4 4 4 4 4...

Считать строку в динамический массив - C++
помогите считать строку цифр неизвестной длины и перевести в массив целых чисел , код на си обычном


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

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

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