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

标签 c string formatting printf

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

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 的第一个参数是格式说明符,后跟所有参数(取决于您的说明符)。

关于c - 如何打印有限数量的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641903/

相关文章:

c - 测量从模拟输入到阵列的直流电压并以 RMS 计算直流电压

c# - LINQ:String.Join 一个列表,但事先向该字符串添加一个字符

c# - 如何格式化数字以具有相同的位数?

python - 这条 Python 语句的含义是什么?

powershell - Powershell当前时间减去特定格式的n秒

c++ - C/C++ : Inherent ambiguity of "\xNNN" format in literal strings

c - c 中的结构,其成员也是结构

c - 终端 : segmentation fault 11 while reading file and counting the amount of vowels

java - 检查字符串是否包含 CJK(中文)字符

java - 将对象的二维数组存储为字符串