谁帮小弟我看看为什么但小弟我把fflush函数去掉时,就不能向string中输入字符串,能否帮小弟我讲讲其中的原因?
哪位高手帮我看看为什么但我把fflush函数去掉时,就不能向string中输入字符串,能否帮我讲讲其中的原因??
#include <stdio.h>
#include <conio.h>
void main( void )
{
int integer;
char string[81];
char str[50];
/* Read each word as a string. */
printf( "Enter a sentence of four words with scanf: " );
for( integer = 0; integer < 1; integer++ )
{
scanf( "%s", string );
printf( "%s\n", string );
}
/* You must flush the input buffer before using gets. */
//清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件;
fflush( stdin );
//fscanf(stdin,"%s",str);
//puts(str);
printf( "Enter the same sentence with gets: " );
gets( string );
fflush( stdin );
printf( "%s\n", string );
}
------解决方案--------------------
因为之前用过scanf,stdin缓冲区还有东西
------解决方案--------------------
《UNIX环境高级编程》的第五章有讲到这方面的内容
使用fflush(stdin)冲洗掉文件缓冲区的内容 这样下次读取才不会出错
#include <stdio.h>
#include <conio.h>
void main( void )
{
int integer;
char string[81];
char str[50];
/* Read each word as a string. */
printf( "Enter a sentence of four words with scanf: " );
for( integer = 0; integer < 1; integer++ )
{
scanf( "%s", string );
printf( "%s\n", string );
}
/* You must flush the input buffer before using gets. */
//清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件;
fflush( stdin );
//fscanf(stdin,"%s",str);
//puts(str);
printf( "Enter the same sentence with gets: " );
gets( string );
fflush( stdin );
printf( "%s\n", string );
}
------解决方案--------------------
因为之前用过scanf,stdin缓冲区还有东西
------解决方案--------------------
《UNIX环境高级编程》的第五章有讲到这方面的内容
使用fflush(stdin)冲洗掉文件缓冲区的内容 这样下次读取才不会出错