Java中无法捕获C程序printf输出的问题
在测试
ConsoleRunner
的过程中发现一个有意思的现象,一段很简单的
C
程序:
#include
#include
int main() {
int i = 0;
for (;;) {
printf("%d\n", i++);
Sleep(500);
}
return 0;
}
ConsoleRunner
竟然无法捕获其输出,如果把
Sleep
拿掉就行,或者如果改用
C++
的
cout
也行,很奇怪,怀疑是缓冲区的问题,上网查找,果然如此,见“
fflush(stdout)
的用途是什么(http://bbs.chinaunix.net/viewthread.php?tid=693309)”,程序中加上一行后,问题消失:
#include
#include
int main() {
int i = 0;
for (;;) {
printf("%d\n", i++);
fflush(stdout);
Sleep(500);
}
return 0;
}
相关文档:
最近研究了下分页,做个总结。
1)数据库操作类,做简单封装 DB.java
package Test;
import java.sql.*;
public class DB {
// 加载驱动
static {
try {
Class.f ......
在Android的应用程序开发中,通常使用的是JAVA语言,除了需要熟悉JAVA语言的基础知识之外,还需要了解Android提供的扩展的JAVA功能。
在一般的JAVA应用中,如果需用引用基础类库,通常需要使用如下的方式:
import
javax.swing.*;
以上代码表示了引用JAVA的GUI组件Swing,javax.swing即JAVA中的一个包。
android提供� ......
今年已经28岁了 突然发现已经很不习惯编写代码了,但是对程序中所有的错误和困难,都能很平静的去解决,当一个新的项目来的时候,总是喜欢去设计它分析它,可很难下第一笔去编写它,不知道是不是老了,想了几天了真不知道是不是到了转型时期了。 ......
我不知道这篇文章的作者是谁,但我知道,他对java有一种很深的理解,其实文章中并没有体现出作者对java技术深层理解,但是从文中的每一句话中,我感受到了一些东西。这是一篇很好的文章,也可以帮助很多人迷茫的人解决问题。带来和大家分享一下。
前不久CSDN刊登了一篇《C语言已经死了》的文章,引起了一些争论。其实那� ......
声明:此文的各种猥琐解法转自电子科大内网论坛,对,就是最近因”许愿门“而上各大新闻网站的学校。
题目如下:
#include "stdio.h"
void print()
{
*
}
void main()
{
}
要求在*号处添加语句,程序输出hello,world!
好了,我直接贴答案了,相信大家都看得懂,有些实在是猥琐。。� ......