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

Считать последовательность вещественных чисел из файла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Ryuujin
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 13
15.12.2010, 08:18     Считать последовательность вещественных чисел из файла #1
Необходимо считать все числа из текстового файла, записать их в массив параллельно подсчитав их количество. Необходимо это сделать через ifstream.
Заранее благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2010, 08:18     Считать последовательность вещественных чисел из файла
Посмотрите здесь:

Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20. C++
C++ Преобразовать последовательность из n вещественных чисел a1, ..., an.
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
C++ Пусть вводится последовательность вещественных чисел
C++ Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.12.2010, 10:19     Считать последовательность вещественных чисел из файла #2
C++
1
2
3
4
5
    double n;
    vector <double> v;
 
    while (fin >> n)
        v.push_back(n);
Ryuujin
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 13
21.12.2010, 23:41  [ТС]     Считать последовательность вещественных чисел из файла #3
а от чего оно может входить в бесконечный цикл?

Добавлено через 28 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
vector<float> FindNum()
{   float fnum;
    vector <float> vdat;
    
    ifstream fin("diag_data.txt");
 
    while (fin >> fnum)
    {   vdat.push_back(fnum);
         //MessageBox(hwnd,"vdat.push_back(fnum);",NULL,MB_OK);
    }
    return vdat;
}
Собственно по MessageBox'у и определил, что оно из цикла не выходит. Подскажите, пожалуйста, из-за чего так.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.12.2010, 04:43     Считать последовательность вещественных чисел из файла #4
пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <vector>
 
using namespace std;
 
int main(void)
{
    ifstream fin("file.txt");
    double n;
    vector <double> v;
 
    while (fin >> n)
        v.push_back(n);
 
    for (int i = 0; i < v.size(); i++)
        cout << v[i] << endl;
    
    return 0;
}
Код
[guest@localhost tests]$ ./t
0.5
0.6
0.7
[guest@localhost tests]$
даже для
Код
0.5
0.6
0.7
ab
0.8


надо перед return vdat; поставить cout << "loop ended" << endl;
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
22.12.2010, 06:20     Считать последовательность вещественных чисел из файла #5
Реализация на Turbo С++ 3.0
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
35
36
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <fstream.h>
 
int main()
{
char ch;
char mas[100] = "\0";
int count=0;
fstream f;
f.open ("C:\\read.txt", ios::in);  //îòêðûâГ*ГҐГ¬ ГґГ*éë äëÿ Г·ГІГҐГ*ГЁГї
if(!f) //åñëè ГґГ*éë Г*ГҐ Г*Г*éäåГ*
 {
 cout<<"Error!"<<endl;
 cout<<"Fail read.txt! not found!"<<endl;
 cout<<"Razmestite fail read.txt na disk C:\""<<endl;
 getch();
 exit(1);
 }
while (!f.eof())
{
ch = f.get();
if(ch!=' ' && ch!= '\n')
 {
  mas[count++] = ch;
 }
}
cout<<"Massiv soderjit:"<<endl;
cout<<mas;
cout<<endl<<"Kol-vo elementov = "<<count;
 
getch();
f.close();
return 0;
}
До выполнения:
содержимое файла read:
1 2 3 4 5 6 8 7
1 2 3 4 5 8 9 6
1
2
3
5

После выполнения:
Массив содержит:
12345687123458961235
Kol-vo elementov = 21
Ryuujin
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 13
22.12.2010, 15:38  [ТС]     Считать последовательность вещественных чисел из файла #6
accept, у меня не консольное приложение. Значения из вектора используются для построения диаграммы. Потому cout, думаю, будет неуместен.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.12.2010, 06:46     Считать последовательность вещественных чисел из файла #7
любое приложение можно запустить в консоли
для этого нажимаешь win+r и там cmd.exe, потом cd директория и имя программы
Ryuujin
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 13
23.12.2010, 22:39  [ТС]     Считать последовательность вещественных чисел из файла #8
accept, можно и из консоли запустить, но зачем? Приложение-то работает с графическим окном, и консоль тут совершенно не нужна. Тем более результат от этого так и не изменился.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.12.2010, 04:30     Считать последовательность вещественных чисел из файла #9
Цитата Сообщение от Ryuujin
Приложение-то работает с графическим окном
ты отлаживаешь программу, причём тут графическое окно, ты отлаживаешь вектор, который к окнам никакого отношения не имеет, цикл - тоже, файл - тоже
причём тут окна ?
будет нужно проверить пять разных состояний в программе, ты будешь пять окон запускать ?
и в каждое передавать всякую левую инфу
C
1
MessageBox(hwnd,"vdat.push_back(fnum);",NULL,MB_OK);
вот скажи, какое отношение NULL, MB_OK имеют к тому, что цикл не работает ?

а вот скажи, каким образом, если нужно вывести вектор и посмотреть, а что же там внутри, ты выведешь его весь в это окно ?
наверное никаким, потому что это просто неудобно, потому что на это уходит куча времени
Ryuujin
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 13
24.12.2010, 20:49  [ТС]     Считать последовательность вещественных чисел из файла #10
accept, MessageBox я использовал лишь для определения стадии выполнения программы, чтобы знать какие операции выполняются в данный момент. Всего лишь. А значения вектора даже в консоль так и не выводятся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2010, 05:39     Считать последовательность вещественных чисел из файла
Еще ссылки по теме:

Дана последовательность из n вещественных чисел C++
Dev-C++ Дано n вещественных чисел. Определить, образуют ли они возрастающую последовательность C++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.12.2010, 05:39     Считать последовательность вещественных чисел из файла #11
тебе надо поставить cout'ы перед циклом и после цикла
cout перед циклом выводит
C++
1
cout << fin.is_open() << endl;
или
C++
1
cout << fin.is_good() << endl;
cout после цикла выводит
C++
1
cout << "loop ended" << endl;
тогда ты будешь конкретно знать:
1. открылся ли файл
2. заходит ли он в цикл
3. виснет ли цикл

нужно понять, в чём причина повисания
у меня даже пустой файл не виснет
Yandex
Объявления
25.12.2010, 05:39     Считать последовательность вещественных чисел из файла
Ответ Создать тему
Опции темы

Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru