C++ fprintf函数不工作,但返回正数
我正在以以下方式使用C++ fprintf函数不工作,但返回正数,c++,c,stdio,buffering,printf,C++,C,Stdio,Buffering,Printf,我正在以以下方式使用fprintf。似乎一切正常,但fprintf根本无法打印到我的文件中 fprintf(pFile, "%s\n", "print"); 奇怪的是,fprintf返回OK。它返回上述代码中的6,但不打印到文件 文件已成功创建,但为空 将其更改为printf正在打印,并且OK也在打印。fprintf和其他stdio输出函数被缓冲,这意味着输出首先存储在内存中,直到稍后才实际打印。当使用标准输出打印到屏幕时,每一新行都会刷新缓冲区,因此使用printf可以立即看到输出,但当打印
fprintf
。似乎一切正常,但fprintf
根本无法打印到我的文件中
fprintf(pFile, "%s\n", "print");
奇怪的是,fprintf
返回OK
。它返回上述代码中的6
,但不打印到文件
文件已成功创建,但为空
将其更改为
printf
正在打印,并且OK
也在打印。fprintf
和其他stdio输出函数被缓冲,这意味着输出首先存储在内存中,直到稍后才实际打印。当使用标准输出打印到屏幕时,每一新行都会刷新缓冲区,因此使用printf
可以立即看到输出,但当打印到文件时,缓冲区在写入4096字节(例如)后才会刷新。您可以添加fflush(pFile)如果出于某种原因需要输出快速显示在文件上,请使用code>刷新缓冲区
调用fclose
或通过正确退出程序隐式关闭文件时,缓冲区也会被刷新,但如果程序在不关闭文件的情况下继续运行,或者如果程序崩溃,则需要fflush
查看文件上的输出。fprintf
和其他stdio输出函数会被缓冲,这意味着输出首先存储在内存中,直到稍后才实际打印。当使用标准输出打印到屏幕时,每一新行都会刷新缓冲区,因此使用printf
可以立即看到输出,但当打印到文件时,缓冲区在写入4096字节(例如)后才会刷新。您可以添加fflush(pFile)如果出于某种原因需要输出快速显示在文件上,请使用code>刷新缓冲区
调用fclose
或通过正确退出程序隐式关闭文件时,缓冲区也会被刷新,但如果程序在不关闭文件的情况下继续运行,或者如果程序崩溃,则需要fflush
查看文件上的输出。fprintf
和其他stdio输出函数会被缓冲,这意味着输出首先存储在内存中,直到稍后才实际打印。当使用标准输出打印到屏幕时,每一新行都会刷新缓冲区,因此使用printf
可以立即看到输出,但当打印到文件时,缓冲区在写入4096字节(例如)后才会刷新。您可以添加fflush(pFile)如果出于某种原因需要输出快速显示在文件上,请使用code>刷新缓冲区
调用fclose
或通过正确退出程序隐式关闭文件时,缓冲区也会被刷新,但如果程序在不关闭文件的情况下继续运行,或者如果程序崩溃,则需要fflush
查看文件上的输出。fprintf
和其他stdio输出函数会被缓冲,这意味着输出首先存储在内存中,直到稍后才实际打印。当使用标准输出打印到屏幕时,每一新行都会刷新缓冲区,因此使用printf
可以立即看到输出,但当打印到文件时,缓冲区在写入4096字节(例如)后才会刷新。您可以添加fflush(pFile)如果出于某种原因需要输出快速显示在文件上,请使用code>刷新缓冲区
调用fclose
或通过正确退出程序隐式关闭文件时,缓冲区也会被刷新,但如果程序在不关闭文件的情况下继续运行,或者如果程序崩溃,则需要fflush
查看文件的输出。您是如何打开pFile的?打开文件时是否检查了返回值?请显示打开文件的代码。是否正在调用fclose
?否则,缓冲区可能不会刷新!如果您不清楚刷新缓冲区是什么,那么这可以帮助您回答问题。您是如何打开pFile的?打开文件时是否检查了返回值?请显示打开文件的代码。是否正在调用fclose
?否则,缓冲区可能不会刷新!如果您不清楚刷新缓冲区是什么,那么这可以帮助您回答问题。您是如何打开pFile的?打开文件时是否检查了返回值?请显示打开文件的代码。是否正在调用fclose
?否则,缓冲区可能不会刷新!如果您不清楚刷新缓冲区是什么,那么这可以帮助您回答问题。您是如何打开pFile的?打开文件时是否检查了返回值?请显示打开文件的代码。是否正在调用fclose
?否则,缓冲区可能不会刷新!如果您不清楚刷新缓冲区是什么,这将有助于Thomas回答。非常感谢!它帮助了我。:)多谢各位!它帮助了我。:)多谢各位!它帮助了我。:)多谢各位!它帮助了我。:)