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

Mik*_*ras 13 c string formatting printf

很抱歉发布关于这么简单的事情的帖子,但是我不知道我在这里做错了什么.

char data[1024];
DWORD numRead;

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

if (numRead > 0)
    printf(data, "%.5s");
Run Code Online (Sandbox Code Playgroud)

我的意图是从文件中读取数据,然后只打印出5个字符.但是,它打印出所有1024个字符,这与我在这里读到的相反.当然,目标是做类似的事情:

printf(data, "%.*s", numRead);
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

R S*_*hko 29

您的参数输入顺序错误.应写成:

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

printf("%.*s", numRead, data);
Run Code Online (Sandbox Code Playgroud)

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