C 如何将完整字符串写入文件?

C 如何将完整字符串写入文件?,c,windows,string,file-io,C,Windows,String,File Io,我现在正在Windows中编程,但也欢迎使用可移植代码 我现在使用的是fwrite(4),但是这个函数需要最大数量的元素才能写入文件。我可以在这里使用strlen(1),但我想知道是否有更好的方法可以做到这一点。使用: 您可以使用fput,但使用需要写入大小的函数更安全(缓冲区溢出) 因此,IMHO首选使用fwrite。您可以先检查预期长度内的空值。fwrite不提供此类保护-您必须使用strlen()获得大小,这有效地实现了fputs所显示的功能。使用strlen的fwrite比fputs更安

我现在正在Windows中编程,但也欢迎使用可移植代码

我现在使用的是
fwrite(4)
,但是这个函数需要最大数量的元素才能写入文件。我可以在这里使用strlen(1),但我想知道是否有更好的方法可以做到这一点。

使用:


您可以使用
fput
,但使用需要写入大小的函数更安全(缓冲区溢出)


因此,IMHO首选使用
fwrite

您可以先检查预期长度内的空值。

fwrite不提供此类保护-您必须使用strlen()获得大小,这有效地实现了fputs所显示的功能。使用strlen的fwrite比fputs更安全?如果字符串缺少零终止,两者都将使缓冲区溢出。将fwrite与strlen一起使用不会提供溢出保护,因为strlen本身不提供这种保护。没有函数真正提供这种保护。但是一旦你必须通过你正在写的长度,就不太可能犯BO错误。@不,你更可能犯错误-例如,通过明确提供错误的长度。
FILE * f = fopen( "myfile.txt", "w" );
fputs( "Hello world\n", f );