нужен свежий взгляд на Printf

Тема в разделе "Общие вопросы по С и С++", создана пользователем Ivan716, 31 мар 2011.

Статус темы:
Закрыта.
  1. Ivan716

    Ivan716 Гость

    int power;
    double number, result;
    ....
    ....
    printf("\nnumber = %d", number);
    printf("\npower = %d", power);
    printf("\nresult = %d", result);

    printf("\n\n number = %d; power = %d; result = %d", number, power, result);


    на вывод выходит разные значения для result и power;
    когда выдаю отдельными значениями все ок, когда выдаю
    одной строкой то указанные переменные не соответствуют
    своим значениям.

    подозреваю, что я что-то путаю со спецификатором, но что???
    при использовании спецификатора Ld на экране тоже самое
     

    Вложения:

    • hz.JPG
      hz.JPG
      Размер файла:
      16,9 КБ
      Просмотров:
      52
  2. ierofant

    ierofant Гость

    Спецификатор для чисел с плавающей точкой (float, double) - %f, а %d - целые десятичные числа.
     
  3. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
  4. Ivan716

    Ivan716 Гость

    Да, спасибо, разобрался
     
  5. RiCrO

    RiCrO Гость

    Пользуйся cout и cin... Эти ребята заточены под С++, и мне кажется что с ними работать удобнее. Хотя в printf возможностей кажется больше.
     
  6. ierofant

    ierofant Гость

    В целом всё верно (если кодить именно на C++), но вот только с последним утверждением нельзя согласится. Просто манипуляторы стандартных потоков C++ плохо освещены, а на самом деле их вон сколько:
    http://www.cplusplus.com/reference/iostream/manipulators/

    И ещё стоит отметить, что собственные типы можно приспособить для вывода через потоки, посредством перегрузки операторов. printf же выводит только стандартные типы.
     
  7. RiCrO

    RiCrO Гость

    А про это я и совсем забыл. Благодарю за исправление.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей