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

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

Войти
Регистрация
Восстановить пароль
 
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
#1

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

12.06.2013, 15:50. Просмотров 801. Ответов 12
Метки нет (Все метки)

Создать одномерный массив типа int, заполнение из файла (одна строка – один элемент). Строки файла состоят из целых чисел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 15:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос создать массив из файла (C++):

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

как создать n-мерный массив, заполнив данными из данного файла - C++
Здравствуйте, уважаемые Гуру C++. Начал изучать C++, но некоторые вещи, после php, кажутся весьма странными. Например, не могу...

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

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

На основе исходного файла создать массив удвоенных нечётных чисел и упорядочить его по возрастанию элементов - C++
Создать двоичный файл, куда записать n целых чисел. На основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по...

Из файла создать массив, элементы которого являются числами-палиндромами и расположены после максимального значения в файле - C++
Создать двоичный файл и записать в него n целых чисел. Из файла создать массив, элементы которого являются числами-палиндромами и...

12
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
12.06.2013, 16:37 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream ifs("Text.txt"); 
    int arr[1024];
 
    for (int i = 0; !ifs.eof(); ++i)
    {
        ifs >> arr[i];
        std::cout << arr[i] << ' ';
    }
 
    std::cout << std::endl;
 
    return 0;
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
12.06.2013, 16:41 #3
Цитата Сообщение от SeregaC++ Посмотреть сообщение
int arr[1024];
только для студенческих лаб


Bboy AZOT, вам надо либо проходить два раза по фалу: первый - считать кол-во элементов, потом выделять память под дин. массив, а вторым обходом записывать в него числа. Либо использовать контейнеры типа std::vector.
1
Issues
12.06.2013, 16:45
  #4

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
только для студенческих лаб Bboy AZOT, вам надо либо проходить два раза по фалу: первый - считать кол-во элементов, потом выделять память под дин. массив, а вторым обходом записывать в него числа. Либо использовать контейнеры типа std::vector.
сначала думал так сделать, но потом подумал, что он же новичок, сделаю самым простым вариантом.

1
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 16:49  [ТС] #5
Цитата Сообщение от SeregaC++ Посмотреть сообщение

Не по теме:

сначала думал так сделать, но потом подумал, что он же новичок, сделаю самым простым вариантом.

спасибо)) а можно взглянуть хотя бы на этот цикл с подсчетом всех элементов?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
12.06.2013, 16:49 #6
Цитата Сообщение от SeregaC++ Посмотреть сообщение
он же новичок, сделаю самым простым вариантом.
лучше сразу учить делать правильно
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 <iostream>
#include <fstream>
 
int main()
{
    std::ifstream ifs("input.txt"); 
    if (!ifs)
        return 1;
    int *arr, counter = 0, tmp;
    
    for (int tmp; !ifs.eof() && ifs >> tmp; counter++);
    arr = new int[counter];
 
    ifs.clear();
    ifs.seekg(0);    
 
    for (int i = 0; !ifs.eof() && ifs >> arr[i]; i++)
        std::cout << arr[i] << ' ';
 
    std::cout << std::endl; 
    delete [] arr;
    return 0;
}
1
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 16:59  [ТС] #7
благодарю)

Добавлено через 8 минут
Цитата Сообщение от MrGluck Посмотреть сообщение
лучше сразу учить делать правильно
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 <iostream>
#include <fstream>
 
int main()
{
    std::ifstream ifs("input.txt"); 
    if (!ifs)
        return 1;
    int *arr, counter = 0, tmp;
    
    for (int tmp; !ifs.eof() && ifs >> tmp; counter++);
    arr = new int[counter];
 
    ifs.clear();
    ifs.seekg(0);    
 
    for (int i = 0; !ifs.eof() && ifs >> arr[i]; i++)
        std::cout << arr[i] << ' ';
 
    std::cout << std::endl; 
    delete [] arr;
    return 0;
}

Запустил с файлом D:\a.txt. при первом же условии возвращает единицу и выходит
C++ (Qt)
1
   std::ifstream ifs("D:\a.txt");
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
12.06.2013, 17:02 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
#include <vector>
 
int main()
{
    std::ifstream ifs("Text.txt"); 
    std::vector<int> arr;
 
    for (int i; !ifs.eof();)
    {
        ifs >> i; arr.push_back(i);
        std::cout << arr.back() << ' ';
    }
 
    std::cout << std::endl;
 
    return 0;
}
Добавлено через 45 секунд
Цитата Сообщение от Bboy AZOT Посмотреть сообщение
std::ifstream ifs("D:\a.txt");
C++
1
std::ifstream ifs("D:\\a.txt");
0
MrGluck
Модератор
Эксперт CЭксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
12.06.2013, 17:07 #9
Bboy AZOT, лучше не использовать абсолютные пути к файлам

Добавлено через 44 секунды
завязывает не только к ОС, но еще и к тому, какие директории лежат на пути к файлу
1
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 17:08  [ТС] #10
Цитата Сообщение от SeregaC++ Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
#include <vector>
 
int main()
{
    std::ifstream ifs("Text.txt"); 
    std::vector<int> arr;
 
    for (int i; !ifs.eof();)
    {
        ifs >> i; arr.push_back(i);
        std::cout << arr.back() << ' ';
    }
 
    std::cout << std::endl;
 
    return 0;
}
Добавлено через 45 секунд

C++
1
std::ifstream ifs("D:\\a.txt");

В этом варианте происходит зацикливание и постоянно выводит "-858993460" - откуда взялись эти числа не знаю. В файле совсем другие:

5
125
524
643
8
215
78832
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
12.06.2013, 17:11 #11
Bboy AZOT,
Цитата Сообщение от Bboy AZOT Посмотреть сообщение
std::ifstream ifs("Имя твоего файла");
1
MrGluck
Модератор
Эксперт CЭксперт С++
7490 / 4605 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
12.06.2013, 17:14 #12
Bboy AZOT, ищите проблему у себя
создать массив из файла
1
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 17:15  [ТС] #13
Спасибо всем)) проблема решилась при использовании D:\\a.txt
0
12.06.2013, 17:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 17:15
Привет! Вот еще темы с ответами:

Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Максимальный из отрицательных элементов и поменять его местами с после - C++
#include &lt;iostream.h&gt; #include &lt;fstream.h&gt; void read_matr(double X) { ifstream f(&quot;matr.txt&quot;); for(int i=0; i&lt;15; i++){ f&gt;&gt;X; } ...

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

Создать программу, реализующую: создание файла, просмотр файла, поиск по файлу, выход - C++
Создать программу, которая может осуществлять такие действия(меня программы): создание файла, просмотр файла, поиск по файлу, выход. Каждое...

Создать два файла, первый содержит элементы исходного файла с нечетными номерами, а второй с четными - C++
1.) Дан файл вещественных чисел разделенных одним пробелом. Создать два новых файла, первый из которых содержит элементы исходного файла с...


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

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

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