Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
1

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

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

Author24 — интернет-сервис помощи студентам
Создать одномерный массив типа int, заполнение из файла (одна строка – один элемент). Строки файла состоят из целых чисел
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2013, 15:50
Ответы с готовыми решениями:

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

Создать массив структур, заполнив его информацией из файла “input.txt”. Упорядочить этот массив по убыванию суммы баллов
В файле “input.txt” задано количество студентов механикоматематического факультета ННГУ и их...

Создать двоичный файл. На основе исходного файла создать массив удвоенных нечетных чисел
Задание. прошу помощи в доработке Создать двоичный файл, куда записать n целых чисел. На основе...

Создать массив структур Название файла, объем файла, дата создания
Создать массив структур Название файла, объем файла, дата создания. И вывести на печать записи...

12
433 / 368 / 149
Регистрация: 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
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
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
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 16:49  [ТС] 5
Цитата Сообщение от SeregaC++ Посмотреть сообщение

Не по теме:

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

спасибо)) а можно взглянуть хотя бы на этот цикл с подсчетом всех элементов?
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
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
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
433 / 368 / 149
Регистрация: 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
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 17:07 9
Bboy AZOT, лучше не использовать абсолютные пути к файлам

Добавлено через 44 секунды
завязывает не только к ОС, но еще и к тому, какие директории лежат на пути к файлу
1
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
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
12.06.2013, 17:11 11
Bboy AZOT,
Цитата Сообщение от Bboy AZOT Посмотреть сообщение
std::ifstream ifs("Имя твоего файла");
1
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 17:14 12
Bboy AZOT, ищите проблему у себя
создать массив из файла
1
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 17:15  [ТС] 13
Спасибо всем)) проблема решилась при использовании D:\\a.txt
0
12.06.2013, 17:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2013, 17:15
Помогаю со студенческими работами здесь

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

Создать массив из файла
Дан файл &quot;file.txt&quot; , где в каждой строке находится числа , разделенные пробелом. Гарантируется...

Создать массив из строк файла
Есть файл, в нем сколько-то строк. Нужно создать массив из строк данных данного файла. Вопрос...

Создать двумерный массив из файла .txt
Создать двумерный массив и заполнить его из файла (первые два числа в файле задают количество строк...

Создать массив строк из файла и вывести в ListBox
Всем привет! Создаю свое приложение! Хочу создать массив строк из файла вывести в листбоксе и т.д....

Нужна помошь создать массив из текст файла
Я только недавно начала заниматься питоном но как шеф об этом услышал он теперь хочет чтобы я...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru