Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
aleika
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
#1

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

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

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

Как загнать сие в массив тоесть загнать все подряд с пробелами разделающими строчки.
Был бы благодарен ответам, а лучше прмиерам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод данных из файла в массив (C++):

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

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

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

Вывод данных из структурированного файла - C++
помогите как вывести данные из файла в таблицу следующим образом strana | stolica | valuta россия москва рубль и тд... чтоб...

Вывод данных из файла по столбцам - C++
Приветствую, уважаемые форумчане. Нужна ваша помощь. Есть код: #include<iostream> #include<stdlib.h> #include<string> ...

Вывод данных из тектового файла - C++
Здравствуйте уважаемые эксперты c++. не могли бы мне помочь. на реализации одно из кода. мне понадобилась возможность вывода из файла txt...

21
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.12.2012, 22:42 #2
aleika, std::getline + std::string
0
aleika
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
30.12.2012, 22:46  [ТС] #3
Цитата Сообщение от go Посмотреть сообщение
aleika, std::getline + std::string
спс. конечно, я надеялся немного поподробнее ответ получить) ну погуглю и попробую разобраться и с этим.
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
30.12.2012, 23:20 #4
Только пробелы не читает!
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
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.12.2012, 23:24 #5
tokar2, а точно вот это видели?
Цитата Сообщение от aleika Посмотреть сообщение
Пример входного файла:
0
aleika
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
30.12.2012, 23:32  [ТС] #6
Начал чтото придумывать.

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
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
30.12.2012, 23:44 #7
Вот так норм!
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
Эксперт С++
7246 / 5418 / 297
Регистрация: 10.12.2010
Сообщений: 24,042
Записей в блоге: 17
30.12.2012, 23:51 #8
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 минуту
http://www.cyberforum.ru/blogs/131347/custom19.html
0
aleika
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 00:04  [ТС] #9
Цитата Сообщение от 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
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 00:08 #10
Первый раз чтобы посчитать количество элементов в файле, чтобы выделить достаточно памяти под массив.
Цитата Сообщение от aleika Посмотреть сообщение
while(true)
* * {
* * * * fscanf(f,"%c", &i);
* * * * if (feof(f)) break;
* * * * count++;
* * }
Второй раз я эти элементы засовываю в мисив.
Цитата Сообщение от aleika Посмотреть сообщение
while(!feof(f))
* * {
* * * * fread(&mas[i++], sizeof(char), 1, f);
* * }
0
aleika
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 00:09  [ТС] #11
Цитата Сообщение от tokar2 Посмотреть сообщение
Первый раз чтобы посчитать количество элементов в файле, чтобы выделить достаточно памяти под массив.

Второй раз я эти элементы засовываю в мисив.
нее эт я понял=)) просто не понятно почему нельзя его не закрывать.. а продолжить.. хотя когда я это написал я понял зачем)
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 00:16 #12
После считывания количества элементов курсор будет в конце файла, а нам нужно чтобы он был в начале, вот поэтому и два раза открываю! Можно было вместо этого
C++
1
2
fclose(f);
    f=fopen("1.txt","r");
вот это написать
C++
1
fseek(f,0,SEEK_SET);
Добавлено через 55 секунд
Это перенесет курсор в начало файла!
0
aleika
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 35
31.12.2012, 00:30  [ТС] #13
Цитата Сообщение от tokar2 Посмотреть сообщение
После считывания количества элементов курсор будет в конце файла, а нам нужно чтобы он был в начале, вот поэтому и два раза открываю! Можно было вместо этого
C++
1
2
fclose(f);
    f=fopen("1.txt","r");
вот это написать
C++
1
fseek(f,0,SEEK_SET);
Добавлено через 55 секунд
Это перенесет курсор в начало файла!
дааа спс я эт тоже сразу сообразил начал гуглить как перекинуть курсор на начало=)
вопрос: как изменить мне строчку с созданием массива чтобы она была не динамической.?
0
tokar2
25 / 25 / 1
Регистрация: 09.11.2012
Сообщений: 229
31.12.2012, 00:37 #14
Вот:
C++
1
char mas[count];
0
Avazart
Эксперт С++
7246 / 5418 / 297
Регистрация: 10.12.2010
Сообщений: 24,042
Записей в блоге: 17
31.12.2012, 01:08 #15
Цитата Сообщение от aleika Посмотреть сообщение
вопрос: как изменить мне строчку с созданием массива чтобы она была не динамической.?
Используй std::string
0
31.12.2012, 01:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2012, 01:08
Привет! Вот еще темы с ответами:

Ввод/вывод данных в/из файла - C++
Ребят, такая проблемка, когда ввожу строки , в файле они отображаются иероглифами(не все, почему то только те строки, у которых длинна 3...

Вывод строки из файла в массив - C++
Всем доброго времени суток. Есть текстовый файл в котором несколько строк с набором чисел. Такой вопрос, как поместить...

Массив вывод данных - C++
Добрый день, я сделал программу для высчитывания математического выражения , для этого использовал 2 структуры, для ввода значений...

Вывод на экран данных их бинарного файла - C++
Привет, народ. Выручайте пожалуйста. Никак не могу сообразить, как вывести на экран данные из бинарного файла. В файле находятся записи...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru