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

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

Войти
Регистрация
Восстановить пароль
 
 
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
#1

Чтение int и float из файла - C++

18.07.2014, 11:35. Просмотров 999. Ответов 15
Метки нет (Все метки)

Ну вот опять - печатает в конце программы что-то невообразимое. В начале всё хорошо, а потом засбоила. Может каунтер поставить? Подскажите, пожалуйста!


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
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    int i;
    float x;
 
    ifstream file;
 
    file.open("CSC2134N.txt");
 
    if(file == 0)
    {
        cout<<"File does not exist"<<endl;
        return 1;
    }
        while(!file.eof())
        {
            file >> i;
            file >> x;
            cout << i << endl;
            cout << x << endl;
        }
        file.close();
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2014, 11:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение int и float из файла (C++):

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int) - C++
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй подпрограме.Извиниет за ошибки.Не владею руским.Помогите...

Функции float average(int arrray[],int from,int to) - C++
Напишите код функции float average(int arrray,int from,int to). Возвращаемым значением функции должно быть среднее значение элементов...

Почему при умножении разнотипных переменных (например, float и int) получается int? - C++
Почему при умножении разнотипных переменных (float price и int unit) получается int? Это же не преобразование типов данных. Почему...

Чтение из бинарного файла и преобразование строк в int - C++
Всем доброго времени суток, столкнулся с такой вот проблемой. У меня есть бинарный файл со следующей структурой: N - число эл-тов...

Int в Float - C++
Доброго времени суток. у меня уже второй раз возник вопрос по поводу перевода Int в Float Sr2=(float)S2/size; тут переменная Sr2 типа...

Преобразование int в float - C++
Добрый день! int x = 20110511; double a = x; cout&lt;&lt;x&lt;&lt;' '&lt;&lt;a&lt;&lt;'\n'; Результат: 20110511 2.01105e+007 Число float...

15
zss
Модератор
Эксперт С++
6573 / 6135 / 2021
Регистрация: 18.12.2011
Сообщений: 15,987
Завершенные тесты: 1
18.07.2014, 11:48 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Удутф Посмотреть сообщение
while(!file.eof())
{
file >> i; file >> x;
cout << i << endl; cout << x << endl;
}
После ввода надо проверить на конец файла
C++
1
2
3
4
5
6
while(!file.eof()) 
{ 
   file >> i; file >> x; 
   if(!file.eof())
       cout << i << endl<< x << endl; 
}
А лучше так
C++
1
2
while( file >> i >> x) 
       cout << i << endl<< x << endl;
1
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 12:10  [ТС] #3
Личное огромное спасибо!!!!!!

Добавлено через 14 минут
А почему после 300 и перед 0,5 какойто нулик появляется?

25
.369
123
4.789
100
300
0.5
10
32

Добавлено через 2 минуты
Это потому что int и float не чередую? А как убрать?
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2014, 12:22 #4
Цитата Сообщение от Удутф Посмотреть сообщение
Это потому что int и float не чередую?
Да.
Цитата Сообщение от Удутф Посмотреть сообщение
А как убрать?
Никак. Или чередовать, или всё в float читать.
0
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 12:34  [ТС] #5
А как лишние десятичные нули убрать у int?
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2014, 12:37 #6
Цитата Сообщение от Удутф Посмотреть сообщение
А как лишние десятичные нули убрать у int?
У int нет десятичных нулей, это целое число со знаком.
0
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 12:37  [ТС] #7
А у меня, когда в float читаю - у интеджеров куча нулей появляется
0
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 12:44  [ТС] #8
А у вас - не появляются? А как вы это делаете?
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2014, 12:49 #9
Цитата Сообщение от Удутф Посмотреть сообщение
когда в float читаю - у интеджеров куча нулей появляется
Это не у интеджеров нули, а у float.
0
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 12:58  [ТС] #10
Так вводились то интеджеры, и в файле сидят они же, а в консоле они с нулями. Я понимаю что работать с ними можно , с нулями они или без, это вопрос эстэтики - страшно смотреть на эти нулищи....
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2014, 13:00 #11
В файле:
25
.369
123
4.789
100
300
0.5
10
32
3
0
Миниатюры
Чтение int и float из файла  
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2014, 13:02 #12
Цитата Сообщение от Удутф Посмотреть сообщение
Так вводились то интеджеры
Где вводились, как вводились?
0
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 13:17  [ТС] #13
Ну так считываем мы их из текст файла, а в файле они целые и десятичные - когда целые - то без десятичных нулей, а в консоль те же без нулей выводятся с нулями
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
37
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main()
{
char *fileName = "CSC2134N.txt";
 
FILE *file = fopen(fileName, "w");
 
int x;
 
float y;
 
    if(file)
    {
        while (x != 0 )
        {
            cout << "Enter an integer (0 to quit): ";
 
            cin >> x;
 
            fprintf(file, "%d\n", x);
 
                if (x)
                {
                    cout << "Enter a float value: ";
 
                    cin >> y;
 
                    fprintf(file, "%f\n", y);
                }
        }
    }
fclose(file);
return 0;
}
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2014, 13:18 #14
Цитата Сообщение от Удутф Посмотреть сообщение
а в консоль те же без нулей выводятся с нулями
11 пост.
1
Удутф
19 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 90
18.07.2014, 13:40  [ТС] #15
@alsav22 Распечаталось без нулей - спасибо за терпеливое внимание!!

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
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    //int i;
    float x;
 
    ifstream file;
 
    file.open("CSC2134N.txt");
 
    if(file == 0)
    {
        cout<<"File does not exist"<<endl;
        return 1;
    }
        while(!file.eof())
        {
            //file >> i;
            file >> x;
 
            if(!file.eof()) //test eof
 
            //cout << i << endl;
            cout << x << endl;
        }
        file.close();
    return 0;
}
Добавлено через 10 минут
А что это за теги форматирования и где их искать?
0
18.07.2014, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2014, 13:40
Привет! Вот еще темы с ответами:

float double int - C++
Доброй ночи, препод совсем запарил, то ему не так, то ему не эдак. // 8.2.cpp: определяет точку входа для консольного приложения. // ...

int или float - C++
здрасьти, p=p*6; каким должен быть тип у p? int или float? или без разницы?

char[] в int, float. - C++
Интересует такой вопрос: Допустим у меня есть массив из char, и в этом массиве посимвольно лежат цифры (через %s), т.е: char ach;...

int/int != float? Why not? - C++
Всем доброго времени суток! Объясните пожалуйста, почему результатом этих операций является целочисленное значение. Ведь должно...


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

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

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