Я пытаюсь прочитать 2 значения с помощью scanf() в C, но значения, которые система записывает в память, не равны моим введенным значениям. Вот код:
double a,b;
printf("--------\n"); //seperate lines
scanf("%ld",&a);
printf("--------\n");
scanf("%ld",&b);
printf("%d %d",a,b);
Если я введу 1 и 2, CMD вернет правильный, но b = -858993460 Вот что я уже пробовал: используя float или int вместо double, используя scanf_s, используя scanf ( "% d или% f для% я или% li или% lf или% e или% g), используя fflush (stdin), чтобы очистить буфер клавиатуры, считая b во-первых, стараюсь как все возможные комбинации. Я выяснил, что существует проблема с удвоением длины 32-битной ОС, так что вы вынуждены использовать scanf (" % lf", & f) для чтения в двойном. Независимо от того, что я делаю, второе значение всегда неверно.
Я использую MS VS express 2012 для настольных компьютеров под управлением Windows 7 32-разрядной ОС.