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

Вывод данных из файла в массив

30.12.2012, 22:37. Показов 5127. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте Уважаемые дамы и господа.
Гуглил, читал но что-то никак не разберусь.
Имеется тхт файлик
Пример входного файла:
1222357396873986703265092730965230967092 39652386492036509
8347568972369872398756982375982738578923 7582378957239857893275.71
779077967857.8

Как загнать сие в массив тоесть загнать все подряд с пробелами разделающими строчки.
Был бы благодарен ответам, а лучше прмиерам.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2012, 22:37
Ответы с готовыми решениями:

Вывод данных из файла в массив
Здравствуйте, пишу программу и мне необходимо что бы прочитало количество строк из файла, создался такой же размерности динамический...

Вывод данных из текстового файла сразу в Массив
Здравствуйте! Текстовый файл: txt - в нём содержится 1.000.000 записей в виде двузначного числа в каждой строке. Нужно пересчитать...

Вывод данных из нетипизированного файла в массив записей
Не подскажете как вывести данные нетипизированного файла в динамический массив записей?

21
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
30.12.2012, 22:42
aleika, std::getline + std::string
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
30.12.2012, 22:46  [ТС]
Цитата Сообщение от go Посмотреть сообщение
aleika, std::getline + std::string
спс. конечно, я надеялся немного поподробнее ответ получить) ну погуглю и попробую разобраться и с этим.
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
30.12.2012, 23:20
Только пробелы не читает!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main(){
    FILE* f;
    f=fopen("1.txt","r");
    int count = 0;
    int i = 0;
    while(true)
    {
        fscanf(f,"%d", &i);
        if (feof(f)) break;
        count++;
    }
    fclose(f);
    f=fopen("1.txt","r");
    int* mas = new int[(int)count];
    i=0;
    while(!feof(f))
    {
        fscanf(f,"%d", &(mas[i++]));
    }
    fclose(f);
    const int size = (int)count;
    for (int i=0; i<size; i++){
            cout <<  mas[i]<< " ";      
    }
    getch();
    return 0;
}
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
30.12.2012, 23:24
tokar2, а точно вот это видели?
Цитата Сообщение от aleika Посмотреть сообщение
Пример входного файла:
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
30.12.2012, 23:32  [ТС]
Начал чтото придумывать.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <fstream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    char buf[1000];
    ifstream f("D:\\1.txt");
    if (!f.is_open()) 
    {
        cout << "Error! not found" << endl; 
        _getch();
        return 1;
    }
 
 
// тут думаю как загнать данные в массив buf
 
 
 
 
    f.close();
    _getch();
    return 0;
}
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
30.12.2012, 23:44
Вот так норм!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main(){
    FILE* f;
    f=fopen("1.txt","r");
    int count = 0;
    int i = 0;
    while(true)
    {
        fscanf(f,"%c", &i);
        if (feof(f)) break;
        count++;
    }
    fclose(f);
    f=fopen("1.txt","r");
     char* mas = new  char[(int)count];
    i=0;
    while(!feof(f))
    {
        fread(&mas[i++], sizeof(char), 1, f);
    }
    fclose(f);
    const int size = (int)count;
    for (int i=0; i<size; i++){
            cout <<  mas[i]<< " ";      
    }
    getch();
    return 0;
}
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.12.2012, 23:51
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <fstream>
#include <algorithm>
#include <string>
 
int main()
{
  std::ifstream ifs("1.txt");
  std::string   result;
 
  ifs.unsetf( std::ios_base::skipws );
  std::copy( std::istream_iterator<char>(ifs), 
             std::istream_iterator<char>(), std::back_inserter(result));
}
Добавлено через 1 минуту
https://www.cyberforum.ru/blog... tom19.html
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 00:04  [ТС]
Цитата Сообщение от tokar2 Посмотреть сообщение
Вот так норм!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main(){
    FILE* f;
    f=fopen("1.txt","r");
    int count = 0;
    int i = 0;
    while(true)
    {
        fscanf(f,"%c", &i);
        if (feof(f)) break;
        count++;
    }
    fclose(f);
    f=fopen("1.txt","r");
     char* mas = new  char[(int)count];
    i=0;
    while(!feof(f))
    {
        fread(&mas[i++], sizeof(char), 1, f);
    }
    fclose(f);
    const int size = (int)count;
    for (int i=0; i<size; i++){
            cout <<  mas[i]<< " ";      
    }
    getch();
    return 0;
}
А немголи бы вы кое что пояснить сейчас разбираюсь в этом коде. Возникло пару вопросов.
Зачем вы дважды окрываете закрываете файл.?
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 00:08
Первый раз чтобы посчитать количество элементов в файле, чтобы выделить достаточно памяти под массив.
Цитата Сообщение от aleika Посмотреть сообщение
while(true)
* * {
* * * * fscanf(f,"%c", &i);
* * * * if (feof(f)) break;
* * * * count++;
* * }
Второй раз я эти элементы засовываю в мисив.
Цитата Сообщение от aleika Посмотреть сообщение
while(!feof(f))
* * {
* * * * fread(&mas[i++], sizeof(char), 1, f);
* * }
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 00:09  [ТС]
Цитата Сообщение от tokar2 Посмотреть сообщение
Первый раз чтобы посчитать количество элементов в файле, чтобы выделить достаточно памяти под массив.

Второй раз я эти элементы засовываю в мисив.
нее эт я понял=)) просто не понятно почему нельзя его не закрывать.. а продолжить.. хотя когда я это написал я понял зачем)
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 00:16
После считывания количества элементов курсор будет в конце файла, а нам нужно чтобы он был в начале, вот поэтому и два раза открываю! Можно было вместо этого
C++
1
2
fclose(f);
    f=fopen("1.txt","r");
вот это написать
C++
1
fseek(f,0,SEEK_SET);
Добавлено через 55 секунд
Это перенесет курсор в начало файла!
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 00:30  [ТС]
Цитата Сообщение от tokar2 Посмотреть сообщение
После считывания количества элементов курсор будет в конце файла, а нам нужно чтобы он был в начале, вот поэтому и два раза открываю! Можно было вместо этого
C++
1
2
fclose(f);
    f=fopen("1.txt","r");
вот это написать
C++
1
fseek(f,0,SEEK_SET);
Добавлено через 55 секунд
Это перенесет курсор в начало файла!
дааа спс я эт тоже сразу сообразил начал гуглить как перекинуть курсор на начало=)
вопрос: как изменить мне строчку с созданием массива чтобы она была не динамической.?
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 00:37
Вот:
C++
1
char mas[count];
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.12.2012, 01:08
Цитата Сообщение от aleika Посмотреть сообщение
вопрос: как изменить мне строчку с созданием массива чтобы она была не динамической.?
Используй std::string
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 02:14  [ТС]
Цитата Сообщение от tokar2 Посмотреть сообщение
Вот:
C++
1
char mas[count];
12 студия брякнула при этом char mas[count]; что : Выражение должно иметь константное значение.
0
25 / 25 / 11
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 11:42
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main(){
    FILE* f;
    f=fopen("1.txt","r");
    int count = 0;
    int i = 0;
    while(true)
    {
        fscanf(f,"%c", &i);
        if (feof(f)) break;
        count++;
    }
    fclose(f);
    f=fopen("1.txt","r");
    const int size = count;
    char mas[size];
    i=0;
    while(!feof(f))
    {
        fread(&mas[i++], sizeof(char), 1, f);
    }
    fclose(f);
    for (int i=0; i<size; i++){
            cout <<  mas[i]<< " ";      
    }
    getch();
    return 0;
}
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.12.2012, 12:53
Цитата Сообщение от tokar2 Посмотреть сообщение
C++
1
2
const int size = count;
char mas[size];
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
31.12.2012, 13:23
Цитата Сообщение от tokar2 Посмотреть сообщение
char mas[size];
Чтобы так писать, требуется, чтобы size был известен на этапе компиляции.
0
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 14:43  [ТС]
Цитата Сообщение от soon Посмотреть сообщение
да я тоже сразу так попробывал но понял что это неправильно=)

Добавлено через 2 минуты
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Чтобы так писать, требуется, чтобы size был известен на этапе компиляции.
проясните пожалуйста как это реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.12.2012, 14:43
Помогаю со студенческими работами здесь

Ввод структурированных данных в файл и вывод данных из этого файла на экран (сделать хранилище данных в файле)
Здравствуйте) помогите написать программу, осуществляющую ввод структурированных данных в файл и вывод данных из этого файла на экран...

Вывод исходных данных из файла, добавление данных в файл
Помогите связать следующую запись с файлами. Следующая задача:Разработать программу записи подготовленных данных во внешний файл, вывод...

Работа с файлами, чтение данных, вывод данных в массив
Ребят, нужна Ваша помощь, только начинаю изучать программирование. Хочу написать по типу авторизации, все сделал, но не получается вывести...

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

Вывод из файла в массив
Помогите, надо чтобы из файла каждый символ записывался в массив(1 символ = 1 ячейка массива).Как это сделать?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru