读书人

输出单个字符的有关问题

发布时间: 2013-12-23 14:30:52 作者: rapoo

求助:输出单个字符的问题
在linux下,为什么这段代码不是一个一个字符输出,而是输出一串字符

#include <stdio.h>
#include <unistd.h>

void delay_play(char *str)
{
while(*str)
{
putchar(*str++);
usleep(10000);
}
}

int main(void)
{
char *text = "I am chinese";

for(;;)
{
delay_play(text);
puts("");
}

return 0;
}

而在windows下就是一个一个字符输出
#include <stdio.h>
#include <windows.h>

void delay_play(char *str)
{
while(*str)
{
putchar(*str++);
Sleep(100);
}
}

int main(void)
{
char *text = "I am chinese";

for(;;)
{
delay_play(text);
puts("");
}

return 0;
}


[解决办法]
#include <stdio.h>
#include <unistd.h>

void delay_play(char *str)
{
while(*str)
{
putchar(*str++);
fflush(stdout);
usleep(1000000);
}
}

int main(void)
{
char *text = "I am chinese";

for(;;)
{
delay_play(text);
puts("");
}

return 0;
}

读书人网 >C语言

热点推荐