#include <stdio.h>
int main(int argc, char *argv[])
{
float fl;
char *cp = (char*) &fl;
scanf("%f", &fl);
if (argc > 1) {
printf("%f\n", fl);
}
printf("%f\n", *cp);
return 0;
}
$echo 3.14 | ./a.out
0.000000
$echo 3.14 | ./a.out foo
3.140000
3.140000
$
Почему вывод второго printf зависит от вызова первого?