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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Self-suicide
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
#1

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

11.03.2010, 10:58. Просмотров 2677. Ответов 12
Метки нет (Все метки)

Приветствую.
Вопрос, конечно, проще некуда... но всё же.
Как организовать ввод из файла чисел в массив. В бэйсике, если память не изменяет, там всё просто и числа в файле надо через пробел писать. Хотелось бы это осуществить в С.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2010, 10:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ввод из файла в массив (C++):

двойной массив.ввод из файла - C++
Доброго времени суток. Подскажите пожалуйста, почему не получается ввод из файла в двойной массив? #include <iostream> #include <conio>...

Ввод данных в массив с файла с++ - C++
есть файл input.txt в нем 2 строки, на первой - одно число(размер массива), на второй ряд чисел(массив), как можно присвоить переменной...

Ввод данных в динамический массив из файла - C++
написал программу, вроде все по правилам,только почему-то каждый раз переходит по стрелке "файл не открыт" #include <iostream> ...

Ввод дробных чисел из файла в массив - C++
Доброго времени суток. Возникла проблема с программой. Необходимо вывести из файла дробные числа вида 1/7 и ввести их в массив arr. ...

Ввод данных в динамический массив из файла - C++
В задаче написано: введение данных в динамический массив делать из файла. Как это?

Ввод данных из файла в двумерный массив - C++
Здравствуйте! Я написал такую программу: #include <iostream> #include <fstream> using namespace std; int main() { int...

12
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]);
}
}
0
Self-suicide
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
12.03.2010, 07:17  [ТС] #3
C++
1
int *massiv=new int[размер твоего массива];
Извиняюсь... а что это за объявление массива? Такое объявление обязательно или можно использовать int massiv [размер] ?

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

будет проще и считываться будет именно элемент массива.
0
Self-suicide
0 / 0 / 0
Регистрация: 16.02.2010
Сообщений: 14
12.03.2010, 11:04  [ТС] #5
Так-то оно легче... но проблема именно в том, что через пробелы. Даже при предложенном расположении чисел всё-равно будет происходить копирование одной цифры в одну ячейку, без пробелов, но всё-равно только по одной цифре. В том и проблема: как сделать не поциферное, а почисловое копирование чиселе, стоящих через пробел.
0
User1990
26 / 26 / 2
Регистрация: 03.11.2009
Сообщений: 158
12.03.2010, 11:32 #6
может организовать цикл внутренний , т.е. запись в файле такая : пробел ,число,пробел, число и т.д.
если пробел ,то запоминаем следующие число и т.д.
внешний цикл пока не конец файла
только потом придется переводить из строки в число
0
kuroiryuu
319 / 303 / 23
Регистрация: 05.11.2009
Сообщений: 712
Завершенные тесты: 2
12.03.2010, 11:54 #7
в этом задании в любом случаи придётся переводить со строки в число, т.к. массив записан в текстовый файл, а не бинарный
0
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]);
в чем проблема то???
0
лендер
47 / 47 / 2
Регистрация: 12.01.2010
Сообщений: 183
12.03.2010, 18:00 #9
Цитата Сообщение от Sergey_O Посмотреть сообщение
C++
1
int *massiv=new int[размер твоего массива];
new - ето уже С++
в Си используется malloc()
0
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();
}
а сейчас в чем проблема. компилятор ошибку выдает???
0
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
09.11.2011, 13:38 #11
Цитата Сообщение от RUS1313 Посмотреть сообщение
massiv=(float*)calloc(100,sizeof(float));
вроде , malloc() , а не calloc() ?
поправьтее, если ошибаюсь
0
accept
4831 / 3252 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
09.11.2011, 14:30 #12
Цитата Сообщение от Kirill Losev
вроде , malloc() , а не calloc() ?
поправьтее, если ошибаюсь
есть как malloc(), так и calloc()
0
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
09.11.2011, 23:55 #13
Цитата Сообщение от accept Посмотреть сообщение
есть как malloc(), так и calloc()
ааа..понял спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 23:55
Привет! Вот еще темы с ответами:

Ввод из файла в массив и нахождение наиболее встречающегося элемента - C++
Добрый день (вечер)! Нужно написать программу так, чтобы она создавала файл из рандомных чисел, далее нужно вывести содержимое этого файла...

Ввод из файла - C++
Есть ввод из файла, но при запуске программы ничего не происходит - черный экран с мигающим курсором ifstream in(&quot;D:\file.txt&quot;); ...

Ввод из файла. - C++
дана программа. в ней нужно ввести данные из файла. при выводе их на экран выводит не той кодировкой. помогите поменять. вот код программы:...

ввод из файла - C++
подскажите как делать ввод из файла


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

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

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