问题在C语言中使用'与fgets'printf的'前'的printf'为'与fgets“运行后 [英] Issue in C language using 'fgets' after 'printf' as 'fgets' runs before 'printf'
本文介绍了问题在C语言中使用'与fgets'printf的'前'的printf'为'与fgets“运行后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能重复:结果
<一href=\"http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-strin\">Why除非换行符是格式字符串的printf确实没有呼叫后冲洗? (C语言)
块引用>我使用越来越问题
的printf
和与fgets
在我的code的printf
前面然后fget写,但它不运行,它运行后与fgets
运行。枚举{max_string = 127};
静态字符字符串[max_string + 1] =;INT主(INT ARGC,字符** argv的){
的printf(类型的字符串:);
与fgets(字符串,max_string,标准输入);
的printf(字符串%S \\ n,字符串);
返回0;
}
解决方案做的冲洗
标准输出
fflush(标准输出);
在
与fgets(...)
的printf(类型的字符串:);
fflush(标准输出);
与fgets(字符串,max_string,标准输入);Possible Duplicate:
Why does printf not flush after the call unless a newline is in the format string? (in C)I am getting a problem using
printf
andfgets
as in my codeprintf
is written earlier then fget but it does not run, it runs afterfgets
runs.enum { max_string = 127 }; static char string[max_string+1] = ""; int main( int argc, char ** argv ) { printf("Type a String: "); fgets(string, max_string, stdin); printf("The String is %s\n", string); return 0; }
解决方案do a flush of the
stdout
fflush(stdout);
before
fgets(...)
printf("Type a String: "); fflush(stdout); fgets(string, max_string, stdin);
这篇关于问题在C语言中使用'与fgets'printf的'前'的printf'为'与fgets“运行后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文