很抱歉发布关于这么简单的事情的帖子,但我不知道我在这里做错了什么。
char data[1024];
DWORD numRead;
ReadFile(handle, data, 1024, &numRead, NULL);
if (numRead > 0)
printf(data, "%.5s");
我的意图是从文件中读取数据,然后只打印5个字符。但是,它打印出所有1024个字符,这与我正在阅读的here相反。当然,目标是做一些事情:
printf(data, "%.*s", numRead);
我在这里做错了什么?
答案 0 :(得分:27)
您的参数输入顺序错误。应写成:
printf("%.5s", data);
printf("%.*s", numRead, data);
printf
的第一个参数是格式说明符,后跟所有参数(取决于你的说明符)。
答案 1 :(得分:4)
我认为您正在将参数的顺序切换为printf
:
printf("%.5s", data); // formatting string is the first parameter
答案 2 :(得分:1)
您没有正确调用printf()。
int printf ( const char * format, ... );
这意味着......
printf("%.5s", data);
答案 3 :(得分:-1)
您对printf
语句使用了错误的语法,而.number仅用于数值变量。
所以它应该是
int i;
for(i=0;i<5;i++)
printf("%c", data[i]);