2016-11-12 2 views
0

Код C++ для двойного использования с использованием заголовка cstdio.Невозможно использовать двойную переменную в C++ с использованием cstdio

#include <cstdio> 
    using namespace std; 

    int main() { 

      double f; 
      scanf("%lf",&f); 
      printf("%lf",f); 

      return 0; 
    } 

Этот код всегда выводит 0,000000. Зачем? Но аналогичный код хорошо работает в C

#include<stdio.h> 

    int main() { 
      double f; 
      scanf("%lf",&f); 
      printf("%lf",f); 
      return 0; 
    } 

Этот код работает отлично.

скриншот 1 исполнение программы: Valid XHTML.

скриншот 2 настройка компилятора: Valid XHTML.

+4

'printf ("% lf ", f);' -> 'printf ("% f ", f);' –

+3

Невозможно воспроизвести: http://ideone.com/MsqXCs - Не могли бы вы рассказать какой компилятор вы используете, и с какими входными данными вы тестируете? – Christophe

+2

Код, работающий в ideone, ничего не доказывает в общем случае. 'long double' и' double' могут иметь или не иметь другого представления в конкретной среде исполнения. –

ответ

0

Прочитайте документацию по fscanf и fprintf (особенно спецификаторы преобразования, они отличаются) и удалите using namespace std.

Смежные вопросы