很抱歉就这么简单的事情发帖,但我看不出我在这里做错了什么。
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
python - 在 OSX 上使用格式语言的德语数字分隔符?