在'printf'之后使用'fgets'作为'fgets'在'printf'之前运行的C语言问题

Tan*_*ngh 4 c printf fgets

可能重复:
为什么printf在调用后不会刷新,除非换行符在格式字符串中?(在C中)

我正在使用问题printf,fgets因为在我的代码printf之前写的是fget,但它没有运行,它在运行后fgets运行.

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;
}
Run Code Online (Sandbox Code Playgroud)

And*_*rsK 6

做一个同花顺 stdout

fflush(stdout);
Run Code Online (Sandbox Code Playgroud)

之前 fgets(...)

printf("Type a String: ");  
fflush(stdout);
fgets(string, max_string, stdin); 
Run Code Online (Sandbox Code Playgroud)


nee*_*eel 0

放入一个\n声明printf。这可能是问题所在,因为C缓冲区是行终止的。