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

Ввод из файла в массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Self-suicide
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
11.03.2010, 10:58     Ввод из файла в массив #1
Приветствую.
Вопрос, конечно, проще некуда... но всё же.
Как организовать ввод из файла чисел в массив. В бэйсике, если память не изменяет, там всё просто и числа в файле надо через пробел писать. Хотелось бы это осуществить в С.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2010, 10:58     Ввод из файла в массив
Посмотрите здесь:

C++ ввод из файла
C++ Ввод из файла.
Ввод из файла C++
C++ Ввод данных в массив с файла с++
Ввод данных из файла в двумерный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sergey_O
 Аватар для Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
11.03.2010, 13:05     Ввод из файла в массив #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
 
void main()
{
 
int *massiv=new int[размер твоего массива];
FILE * help;
help=fopen("твой_файл.txt","a+");
for(int i=0;i<размер твоего массива;i++)
{
    fscanf(help,"%d", &massiv[i]);
}
}
Self-suicide
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
12.03.2010, 07:17  [ТС]     Ввод из файла в массив #3
C++
1
int *massiv=new int[размер твоего массива];
Извиняюсь... а что это за объявление массива? Такое объявление обязательно или можно использовать int massiv [размер] ?

Добавлено через 5 минут
И к тому-же... здесь будет происходить копирование одного символа в одну ячейку массива. А необходимо, что-бы в каждой ячейке находилось число, т.е. если в файле через пробел идут десятичные, сотые и далее числа, в ячейку должно копироваться всё число, а не один из его элементов. И массив так же не должен содержать ячеек с пробелами.
enigmatic
46 / 29 / 2
Регистрация: 27.02.2010
Сообщений: 202
12.03.2010, 08:46     Ввод из файла в массив #4
а тебе обязательно файл заполнять через пробелы? Может заполнить его так...
1
23
4
....
56

будет проще и считываться будет именно элемент массива.
Self-suicide
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
12.03.2010, 11:04  [ТС]     Ввод из файла в массив #5
Так-то оно легче... но проблема именно в том, что через пробелы. Даже при предложенном расположении чисел всё-равно будет происходить копирование одной цифры в одну ячейку, без пробелов, но всё-равно только по одной цифре. В том и проблема: как сделать не поциферное, а почисловое копирование чиселе, стоящих через пробел.
User1990
26 / 26 / 2
Регистрация: 03.11.2009
Сообщений: 158
12.03.2010, 11:32     Ввод из файла в массив #6
может организовать цикл внутренний , т.е. запись в файле такая : пробел ,число,пробел, число и т.д.
если пробел ,то запоминаем следующие число и т.д.
внешний цикл пока не конец файла
только потом придется переводить из строки в число
kuroiryuu
 Аватар для kuroiryuu
311 / 295 / 23
Регистрация: 05.11.2009
Сообщений: 698
Завершенные тесты: 2
12.03.2010, 11:54     Ввод из файла в массив #7
в этом задании в любом случаи придётся переводить со строки в число, т.к. массив записан в текстовый файл, а не бинарный
RUS1313
2 / 2 / 0
Регистрация: 08.01.2010
Сообщений: 150
12.03.2010, 17:35     Ввод из файла в массив #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<conio.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
int i;
using namespace std;
 
void main()
{
 
int *massiv=new int[100];
FILE * help;
help=fopen("C:\курсяк по С++\начало\1.txt","a+");
for(int i=0;i<100;i++)
{
        fscanf(help,"%d", &massiv[i]);
}
for (i=0;i<100;i++)
printf("%d",&massiv[i]);
getch();
}
добавил пару строк в ваш код. компилируеться нормально и потом выдает ошибку при этом тыкая на строчку: scanf(help,"%d", &massiv[i]);
в чем проблема то???
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
12.03.2010, 18:00     Ввод из файла в массив #9
Цитата Сообщение от Sergey_O Посмотреть сообщение
C++
1
int *massiv=new int[размер твоего массива];
new - ето уже С++
в Си используется malloc()
RUS1313
2 / 2 / 0
Регистрация: 08.01.2010
Сообщений: 150
12.03.2010, 18:20     Ввод из файла в массив #10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<conio.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include<stdlib.h>
 
int i;
using namespace std;
 
void main()
{
 
massiv=(float*)calloc(100,sizeof(float));
FILE * help;
help=fopen("C:\курсяк по С++\начало\1.txt","a+");
for(int i=0;i<100;i++)
{
        fscanf(help,"%d", &massiv[i]);
}
for (i=0;i<100;i++)
printf("%d",&massiv[i]);
getch();
}
а сейчас в чем проблема. компилятор ошибку выдает???
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
09.11.2011, 13:38     Ввод из файла в массив #11
Цитата Сообщение от RUS1313 Посмотреть сообщение
massiv=(float*)calloc(100,sizeof(float));
вроде , malloc() , а не calloc() ?
поправьтее, если ошибаюсь
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.11.2011, 14:30     Ввод из файла в массив #12
Цитата Сообщение от Kirill Losev
вроде , malloc() , а не calloc() ?
поправьтее, если ошибаюсь
есть как malloc(), так и calloc()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 23:55     Ввод из файла в массив
Еще ссылки по теме:

C++ двойной массив.ввод из файла
Ввод из файла в массив и нахождение наиболее встречающегося элемента C++
Ввод данных в динамический массив из файла C++

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

Или воспользуйтесь поиском по форуму:
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
09.11.2011, 23:55     Ввод из файла в массив #13
Цитата Сообщение от accept Посмотреть сообщение
есть как malloc(), так и calloc()
ааа..понял спасибо
Yandex
Объявления
09.11.2011, 23:55     Ввод из файла в массив
Ответ Создать тему
Опции темы

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