如何使用std :: fprintf()打印长字符串?

时间:2017-12-19 15:56:25

标签: c++

我有一个1024的字符串,我想用std :: fprintf()打印它。 我尝试了以下方法:

FILE* m_file = .....;
char * msg = .....; // (size of 1024)
std::fprintf(m_file, "'%.1024s'\n", msg);

但是在输出文件中,我看到msg的打印长度只有1000.

在关于它的文档中找不到任何内容,是否有人有线索?

更新

事实证明,在我们的管道中的某个地方,字符串被切割为1000,并且我在fprintf之后没有看到整个字符串

2 个答案:

答案 0 :(得分:3)

“我看到msg打印的长度只有1000个。” - > "%.1024s"打印到字符串的长度或1024,以较小者为准。

显然m_file[1000]'\0'

答案 1 :(得分:1)

您应该使用ofstream代替。假设您已成功初始化ofstream m_file,则可以执行以下操作:

m_file.write(msg, 1024)