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

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

30.12.2012, 22:37. Показов 5037. Ответов 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
8484 / 6151 / 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
8484 / 6151 / 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru