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

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

Восстановить пароль Регистрация
 
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 15:50     создать массив из файла #1
Создать одномерный массив типа int, заполнение из файла (одна строка – один элемент). Строки файла состоят из целых чисел
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 15:50     создать массив из файла
Посмотрите здесь:

как создать n-мерный массив, заполнив данными из данного файла C++
Из файла создать массив, элементы которого являются числами-палиндромами и расположены после максимального значения в файле C++
Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Максимальный из отрицательных элементов и поменять его местами с после C++
опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) C++
Создать третий массив, в котором собрать элементы массива A, которые не включаются в массив B C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 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;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
12.06.2013, 16:41     создать массив из файла #3
Цитата Сообщение от SeregaC++ Посмотреть сообщение
int arr[1024];
только для студенческих лаб


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

Не по теме:

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

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

Не по теме:

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

спасибо)) а можно взглянуть хотя бы на этот цикл с подсчетом всех элементов?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
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;
}
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");
Issues
429 / 364 / 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");
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
12.06.2013, 17:07     создать массив из файла #9
Bboy AZOT, лучше не использовать абсолютные пути к файлам

Добавлено через 44 секунды
завязывает не только к ОС, но еще и к тому, какие директории лежат на пути к файлу
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
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
12.06.2013, 17:11     создать массив из файла #11
Bboy AZOT,
Цитата Сообщение от Bboy AZOT Посмотреть сообщение
std::ifstream ifs("Имя твоего файла");
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
12.06.2013, 17:14     создать массив из файла #12
Bboy AZOT, ищите проблему у себя
создать массив из файла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 17:15     создать массив из файла
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Bboy AZOT
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 17:15  [ТС]     создать массив из файла #13
Спасибо всем)) проблема решилась при использовании D:\\a.txt
Yandex
Объявления
12.06.2013, 17:15     создать массив из файла
Ответ Создать тему
Опции темы

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