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

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

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

Студворк — интернет-сервис помощи студентам
Создать одномерный массив типа int, заполнение из файла (одна строка – один элемент). Строки файла состоят из целых чисел
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2013, 15:50
Ответы с готовыми решениями:

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

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

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

12
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
12.06.2013, 16:37
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Эксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 16:41
Цитата Сообщение от SeregaC++ Посмотреть сообщение
int arr[1024];
только для студенческих лаб


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

Не по теме:

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

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

Не по теме:

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

спасибо)) а можно взглянуть хотя бы на этот цикл с подсчетом всех элементов?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 16:49
Цитата Сообщение от 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  [ТС]
благодарю)

Добавлено через 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
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Эксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 17:07
Bboy AZOT, лучше не использовать абсолютные пути к файлам

Добавлено через 44 секунды
завязывает не только к ОС, но еще и к тому, какие директории лежат на пути к файлу
1
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 17:08  [ТС]
Цитата Сообщение от 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
Bboy AZOT,
Цитата Сообщение от Bboy AZOT Посмотреть сообщение
std::ifstream ifs("Имя твоего файла");
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.06.2013, 17:14
Bboy AZOT, ищите проблему у себя
1
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 5
12.06.2013, 17:15  [ТС]
Спасибо всем)) проблема решилась при использовании D:\\a.txt
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2013, 17:15
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru