我使用fputs将字符串写入文件,但在调试模式下,语句fputs后内容不会写入磁盘.我认为有一些缓冲.但我想通过直接查看内容来调试以检查逻辑是否正确.反正有没有禁用缓冲区?谢谢.
Aus*_*oke 18
你有几个选择:
fflush(f); 在某一点刷新缓冲区.setbuf(f, NULL); 禁用缓冲.f显然你的位置在哪里FILE*.
即.
#include <stdio.h>
int main(void)
{
char s[100];
FILE *f = fopen("test.txt", "w");
setbuf(f, NULL);
while (fgets(s, 100, stdin))
fputs(s, f);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
要么
#include <stdio.h>
int main(void)
{
char s[100];
FILE *f = fopen("test.txt", "w");
while (fgets(s, 100, stdin)) {
fputs(s, f);
fflush(f);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)