楼主:
wei115 (ㄎㄎ)
2017-11-16 20:09:00不知道要发在Linux版还是C_and_CPP版 想想还是发在Linux版好了
如题,昨天试验从C_and_CPP版的程式思路,是关于把float转二进制的程式
程式码如下
#include<stdio.h>
int f(int i, int j)
{
return (i < 32)?f(i + 1, j) && printf("%d", (j>>i)&1):1;
}
int main()
{
float a;
int *b = (int *)&a;
while(scanf("%f", &a) != EOF && f(0, *b))
printf("\n");
return 0;
}
但却发现输入数字后,不会出现我想要的输出(浮点数->二进制),一直没有输出,像是
这样: $./a.exe
10
20
30
40 完全不会有输出
debug半天后发现好像是Cygwin的问题,直接在Win的资料夹打开后可以正常输出
后来试验过如果用管线的话可以正常运作
EX. echo 10 | ./a.exe OK
echo 10 | ./a.exe > out OK
但就是直接用键盘输入时不会有动作
后来再写一个小程式,反应也是一样
#include<stdio.h>
int main()
{
int a;
while(scanf("%d", &a) != EOF)
printf("%d\n", a);
return 0;
}
想来应该是,Cygwin的问题了,有人有遇过类似的现象吗?谢谢
附上环境:
WIN10 64bit
CYGWIN_NT-10.0 version 2.9.0(0.318/5/3) ([email protected])
(gcc version 5.4.0 20160603 (Fedora Cygwin 5.4.0-2) (GCC) )
gcc version 7.1.0 (x86_64-posix-seh-rev2, Built by MinGW-W64 project)