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

问题描述 投票:0回答:2

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

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

但是在输出文件中,我看到msg只打印长度为1000。

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

更新:

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

c++
2个回答
3
投票

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

显然m_file[1000]'\0'


1
投票

你应该使用ofstream代替。假设您已成功初始化ofstream m_file,您可以:

m_file.write(msg, 1024)
© www.soinside.com 2019 - 2024. All rights reserved.