0 / 0 / 1
Регистрация: 20.10.2011
Сообщений: 34
1

Зацикливание при вводе из файла

27.05.2013, 21:11. Показов 848. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
требуется ввести из файла в вектор данные типа float. программа зацикливается при выводе целой части вещественного числа.
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
#include "stdafx.h"
#include <iostream>
#include <fstream> 
#include <vector>
 
using namespace std;
 
class buff
{
    public:
        vector<float> data;
        void burnFile(istream& file);
        
};
void buff::burnFile(istream& file)
{
    int value;
    int i = 0;
    while (!file.eof())
    {
        file>>value;
        data.push_back(value);
        cout<<data[i]<<" ";
        i++;
    }
 
}
int main ()
{
    setlocale( LC_ALL,"Russian" );
    buff *one = new buff;
    fstream file("file.txt");
    one->burnFile(file);
    
}
в файле данные записаны в каком виде:
Вложения
Тип файла: txt file.txt (599 байт, 11 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 21:11
Ответы с готовыми решениями:

Зацикливание программы при вводе
Добрый день. У меня почему то происходит зацикливание программы при вводе строки с пробелами....

Зацикливание программы при вводе некорректных данных
Привет всем! Я совсем новенький в программировании на С++ (в школе чуток увлекался Бейсиком, но...

Задачка про зацикливание при вводе не числа (решено но нужна консульт)
Все решено ошибка найдена если есть идеи могут предложить лучший алгоритм int...

Зацикливание при чтении из файла
Пытаюсь читать из файла данные,сохраненные из Экселя ...

3
45 / 45 / 12
Регистрация: 12.03.2013
Сообщений: 167
27.05.2013, 21:14 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void buff::burnFile(istream& file)
{
    //int value;
    float value;
    int i = 0;
    while (!file.eof())
    {
        file>>value;
        data.push_back(value);
        cout<<data[i]<<" ";
        i++;
    }
 
}
1
0 / 0 / 1
Регистрация: 20.10.2011
Сообщений: 34
27.05.2013, 21:16  [ТС] 3
спс)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.05.2013, 21:58 4
Если в файле, в конце последней строки, стоит символ новой строки (а в выложенном файле так), то чтение нужно так сделать (иначе будет лишнее чтение):
C++
1
2
3
4
5
6
7
8
while (true)
{
     file >> value;
     if (file.eof()) break;
     data.push_back(value);
     cout << data[i] << " ";
     i++;
}

Вернее даже не лишнее чтение (считывания как раз не произойдёт), а лишнее добавление в вектор и вывод того, что было считано в предыдущей итерации.
0
27.05.2013, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 21:58
Помогаю со студенческими работами здесь

Происходит зацикливание при чтении файла
Доброго времени суток! Ниже находится код, который посимвольно читает файл, и записывает в другой...

Почему при вводе числа программа работает нормально, а при вводе буквы уходит в бесконечный цикл?
void mainmenu() { cout &lt;&lt; &quot;Введи число&quot; &lt;&lt; endl; cin &gt;&gt; choice; if (choice == 1) { cout &lt;&lt;...

Класс name, включающий в себя данные (имя, фамилия, отчество и номер работника). Зацикливание при чтении файла
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; #include &lt;locale.h&gt; using namespace...

Странности при вводе из файла
Программа должна получать данные из файла.... Примечательно, что она их получает корректно только...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru