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

вывод на экран (выводит числа из файла округленными) - C++

Восстановить пароль Регистрация
 
Шерлок
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 16
12.12.2012, 11:34     вывод на экран (выводит числа из файла округленными) #1
Программа выводит на экран числа из файла, так что числа стоящие на нечетных местах выводятся с одним знаком после запятой, а четных с двумя. Всё работает, но выводятся округлённые числа(соответственно с одним или двумя знаками). Объясните где в программе округление и как его убрать)) построчно вроде разобрал, округления так и не нашёл. спс заранее))


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <iomanip>
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::ifstream ifs("a.txt");//открытие файла
    if(ifs.is_open())//если файл открылся то
    {
        float n;
        for(int i = 0; ifs >> n; ++i)//берет число из файла, читает его и записывает в n
        {   
            if(i % 2)//проверка на четность
                printf("%3.2f ",n);//2 знака после запятой - четные места
            else
                printf("%3.1f ",n);//1 знак после запятой - нечетные места
        }
        ifs.close();//закрыть файл
    }
    else std::cerr << "Unable to open input file" << std::endl;//если файл не открылся
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 11:34     вывод на экран (выводит числа из файла округленными)
Посмотрите здесь:

Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа. C++
Программа, которая считывает текст из файла и выводит на экран строки, содержащие двузначные числа C++
Составить программу, которая выводит на экран все натуральные числа в диапазоне от 1 до n, которые являются степенью числа 2 C++
C++ Создать функцию которая выводит на экран, числа от 1 до указанного числа
Напишите программу на языке С++, которая сравнивает 2 числа и выводит на экран наибольшее из них, если числа равны C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
12.12.2012, 11:38     вывод на экран (выводит числа из файла округленными) #2
У вас же там прямо комментарии стоят на месте форматирования вывода.
"Округление" происходит внутри printf при форматирования вывода.
Шерлок
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 16
12.12.2012, 11:42  [ТС]     вывод на экран (выводит числа из файла округленными) #3
а спс терь понятно вроде) а избавиться от округления можно как то??
Байт
 Аватар для Байт
14004 / 8835 / 1234
Регистрация: 24.12.2010
Сообщений: 16,014
12.12.2012, 12:47     вывод на экран (выводит числа из файла округленными) #4
C
1
2
 int t = 12; // требуемая точность
printf("%3.*f ", t, n);
Цитата Сообщение от Шерлок Посмотреть сообщение
а избавиться от округления можно как то??
Никак. Но можно задать требуемое кол-во знаков после точки. Если сказать
C
1
printf("%f", n);
будет выводиться 6 знаков
Yandex
Объявления
12.12.2012, 12:47     вывод на экран (выводит числа из файла округленными)
Ответ Создать тему
Опции темы

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