Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
#1

Долго считывается информация с файла - C++

22.08.2014, 13:26. Просмотров 343. Ответов 11
Метки нет (Все метки)

У меня такая проблема, программа долго считывает данные с файла, компилю в VS2013. Вот кусок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
    ifstream in("input.txt");
    ofstream out("output.txt");
    
    int a[100000];
    int n = -1;
    while (!in.eof())
    {
        n++;
        in >> a[n];
 
    }
Я засек, 10000 чисел считывает 12 секунд, так и должно быть?
В делфи 1000000 чисел считывает мгновенно. Что за фигня?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2014, 13:26     Долго считывается информация с файла
Посмотрите здесь:

Как считывается информация с файлов? - C++
Объясните кто-нибудь как производить считывание информации с файлов и вообще полезное о работе с файлами.

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

Не считывается строка из файла - C++
Есть динамический массив символов (поле класса). При считывании из файла выдаёт ошибку "CXX0030: ошибка: невозможно вычислить выражение"....

Неправильно считывается структура из файла - C++
Записываю структуру А в файл, затем считываю в структуру В. Символы считываются нормально, а вот цвет фона+символа неправильно. ...

Не выводится информация из файла - C++
не выводится информация с файла! #include <iostream> #include <fstream> #include <string> struct test { std::string...

Как считывать информация с файла по байтам - C++
У меня есть файл, выглядит как график, hex-вид : 00000001: 80 01 00 02 00 05 00 02 00 56 80 02 00 03 00 55 00000002: 56 00 00 04 22 00...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DieMore
3 / 3 / 2
Регистрация: 21.08.2014
Сообщений: 17
22.08.2014, 13:58     Долго считывается информация с файла #2
Пробовали объявить массив глобально?
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
22.08.2014, 14:00  [ТС]     Долго считывается информация с файла #3
А какой в этом смысл? Попробовал на всякий случай, но ничего не изменилось.
DieMore
3 / 3 / 2
Регистрация: 21.08.2014
Сообщений: 17
22.08.2014, 14:08     Долго считывается информация с файла #4
Так не пойдет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
#include <iostream>
 
using namespace std;
 
int a[100000];
 
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
 
    for (int i = 0; i < 100000; i++)
        cin >> a[i];
}
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
22.08.2014, 14:14     Долго считывается информация с файла #5
Скинь файл, который считываешь.
Jupiter
22.08.2014, 14:20
  #6

Не по теме:

Цитата Сообщение от Aspirin Посмотреть сообщение
C++
1
2
3
4
5
6
int n = -1;
while (!in.eof())
{
    n++;
    in >> a[n];
}
C++
1
2
3
4
int n = -1;
while (n < 100000 && in >> a[++n])
{
}

Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
22.08.2014, 14:39  [ТС]     Долго считывается информация с файла #7
Количество данных заранее неизвестно, так что надо использовать eof.
freopen у меня не работает, пишет функция небезопасна, попробовал через freopen_s, также долго считывает.
Вот файл.
Вложения
Тип файла: rar input.rar (264.3 Кб, 6 просмотров)
DieMore
3 / 3 / 2
Регистрация: 21.08.2014
Сообщений: 17
22.08.2014, 14:47     Долго считывается информация с файла #8
Тупанул,простите.
Так пробовали?
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
#include <fstream>
#include <iostream>
 
using namespace std;
 
int a[100000];
 
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    
 
    int n = 0;
 
    while(!fin.eof()) {
 
        fin >> a[n++];
    }
    fout << n;
 
    fin.close();
    fout.close();
}
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
22.08.2014, 14:48     Долго считывается информация с файла #9
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
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    std::ifstream in("input2.txt");
 
    int * a = new int [1000000];
    int n = 0;
 
    clock_t time_start = clock();
    while (!in.eof())
    {
        in >> a[n++];
    }
    clock_t time_stop = clock();
 
    delete [] a;
 
    double duration = (double)(time_stop - time_start) / CLOCKS_PER_SEC;
    std::cout << "Loaded " << n - 1 << " numbers in " << duration << " secs." << "\n";
    system("pause");
}
Миниатюры
Долго считывается информация с файла  
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
22.08.2014, 14:50     Долго считывается информация с файла #10
Это с твоим файлом. 1 000 000 чисел считывает приблизительно 2.5 секунды.
Может, у тебя какой-нибудь жёсткий антивирус стоит, который твою прогу подозрительной считает и каждое её действие проверяет? Как вариант...
Aspirin
29 / 6 / 0
Регистрация: 05.10.2012
Сообщений: 117
22.08.2014, 15:31  [ТС]     Долго считывается информация с файла #11
Вообщем главная проблема была в точке останова. Я поставил условие n==10000 и запускал, чтобы проверить время. Не знал, что она столько времени отнимает.
John Prick, вставил ваш код, время заняло 0.7 на 100000.
3000000 считало за 20 с. Как-то медленно, это может зависеть от компилятора? Я уж думал VS побыстрее Delphi будет, в Delphi те же 3000000 считало за 1.1.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2014, 15:39     Долго считывается информация с файла
Еще ссылки по теме:

как сделать что бы информация из файла бралась рандомно - C++
как сделать что бы вопросы из файла брались рандомно. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Не считывается файл - C++
Вот решил разобраться с пузырьковой сортировкой. Считываю числа из файла в массив. Вопрос:что сделал не так? Компилятор ошибок не находит,...

Считывается не вся матрица - C++
Ввожу матрицу 1 2 3 4 5 6 7 8 9 А считывает только 4 5 7 8 Помогите исправить #include &quot;stdafx.h&quot; #include...

Неправильно считывается массив - C++
Здравствуйте. Есть класс матриц, один из конструкторов позволяет создать матрицу, используя входные данные: количество строк, количество...


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

Или воспользуйтесь поиском по форуму:
John Prick
773 / 706 / 129
Регистрация: 27.07.2012
Сообщений: 2,022
Завершенные тесты: 3
22.08.2014, 15:39     Долго считывается информация с файла #12
Цитата Сообщение от Aspirin Посмотреть сообщение
время заняло 0.7 на 100000
Ну как-то в три раза больше, чем у меня. Так это я ещё debug-версию запускал. Release работает в разы быстрее. 1 000 000 чисел за 1.1 сек считал.
Миниатюры
Долго считывается информация с файла  
Yandex
Объявления
22.08.2014, 15:39     Долго считывается информация с файла
Ответ Создать тему
Опции темы

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