我有一个1024的字符串,我想用std :: fprintf()打印它。 我尝试了以下方法:
FILE* m_file = .....;
char * msg = .....; // (size of 1024)
std::fprintf(m_file, "'%.1024s'\n", msg);
但是在输出文件中,我看到msg的打印长度只有1000.
在关于它的文档中找不到任何内容,是否有人有线索?
更新
事实证明,在我们的管道中的某个地方,字符串被切割为1000,并且我在fprintf之后没有看到整个字符串
答案 0 :(得分:3)
“我看到msg打印的长度只有1000个。” - > "%.1024s"
打印到字符串的长度或1024,以较小者为准。
显然m_file[1000]
是'\0'
。
答案 1 :(得分:1)
您应该使用ofstream
代替。假设您已成功初始化ofstream m_file
,则可以执行以下操作:
m_file.write(msg, 1024)