scanf returns 到达最后一个输入之前的 EOF
scanf returns EOF before last input is reached
我正在尝试收集数字,直到达到 EOF,然后将数字转换为英文。
$ ./dtoa
22
twenty two
程序部分内容如下:
int num;
while(scanf("%d", &num) != EOF)
to_string(num);
问题是,当我输入时,然后按 CtrlD 对于 EOF 最后一个数字实际上不会打印出来:
$ ./dtoa
22 33 44(EOF) twenty two
thirty three(EOF)
forty four
我需要按 CtrlD 才能显示最后一个数字。我该如何修复它以便将完整的输入插入到第一个 EOF 中?
要实际发送 "an EOF"(关闭流),必须在换行后立即按下 CtrlD。
否则,终端正在发送缓冲字符(与 Enter 相同,但不添加 \n
)。
我正在尝试收集数字,直到达到 EOF,然后将数字转换为英文。
$ ./dtoa
22
twenty two
程序部分内容如下:
int num;
while(scanf("%d", &num) != EOF)
to_string(num);
问题是,当我输入时,然后按 CtrlD 对于 EOF 最后一个数字实际上不会打印出来:
$ ./dtoa
22 33 44(EOF) twenty two
thirty three(EOF)
forty four
我需要按 CtrlD 才能显示最后一个数字。我该如何修复它以便将完整的输入插入到第一个 EOF 中?
要实际发送 "an EOF"(关闭流),必须在换行后立即按下 CtrlD。
否则,终端正在发送缓冲字符(与 Enter 相同,但不添加 \n
)。