c - 如何打印有限数量的字符?

很抱歉就这么简单的事情发帖,但我看不出我在这里做错了什么。

char data[1024];
DWORD numRead;

ReadFile(handle, data, 1024, &numRead, NULL);

if (numRead > 0)
    printf(data, "%.5s");

我上面的意图是从文件中读取数据,然后只打印出 5 个字符。但是,它会打印出所有 1024 个字符,这与我正在阅读的内容相反 here .当然,目标是执行以下操作:

printf(data, "%.*s", numRead);

我在这里做错了什么?

最佳答案

您的参数顺序错误。应该写成:

printf("%.5s", data);

printf("%.*s", numRead, data);

printf 的第一个参数是格式说明符,后跟所有参数(取决于您的说明符)。

https://stackoverflow.com/questions/2641903/

相关文章:

formatting - 我可以在 specflow 中更改 Gherkin 格式样式吗?

visual-studio - 如何在 Visual Studio 中自动格式化 XAML 代码?

python - 我应该如何在 python 中缩进三元条件运算符以使其符合 PEP8?

php - 格式化 MySQL 查询的结果,就好像它是从控制台运行的一样

formatting - .NET GUID 大写字符串格式

css - 无法使用 class=pull-right 或 float :right 向右浮动 tw

powershell - 使用格式表控制列宽

python - 在 OSX 上使用格式语言的德语数字分隔符?

python - 如何使用 .format() 打印字符串,并在替换的字符串周围打印文字花括号

layout - Mathematica 中的 2 列文档