所以我开始学习java,我想知道是否可以使用“%n”参数(来自C printf()),它应该写入写入的字节数到 “%N” 参数:Java中的C格式说明符“%n”
这是它在C用途:
#include <stdio.h>
int main()
{
int val;
printf("ciao %n ciao\n", &val);
printf("val = %d\n", val);
return 0;
}
打印:
ciao ciao
val = 5
但是当我尝试在Java中使用它:
public class CharTest
{
public static void main(String[] argv)
{
int value;
System.out.printf("\nNumber of bytes written up to now: %n\n", &value);
System.out.println(value);
}
}
Java编译器给了我这个消息:
CharTest.java:20: error: illegal start of expression
System.out.printf("\nNumber of bytes written up to now: %n\n", &value);
^
1 error
如何解决这个问题?
[格式器文档](https://docs.oracle.com/javase/9/docs/api/java/util/Formatter.html#summary)将回答你的问题。 – VGR
它确实不应该在C中,因为它是如此简单的攻击矢量。 – djechlin