私はJavaを学び始めていますが、書き込まれたバイト数を書き込むべき "%n"パラメータ(Cのprintf())を使用できるかどうかは疑問でした。 "%n" は、パラメータまで:JavaのCの書式指定子 "%n"
#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でそれを使用しようとすると:
これはCでの使用だある
私はこの問題を解決するにはどうすればよいCharTest.java:20: error: illegal start of expression
System.out.printf("\nNumber of bytes written up to now: %n\n", &value);
^
1 error
:210
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コンパイラは、私にこのメッセージを表示しますか?
[Formatter documentation](https://docs.oracle.com/javase/9/docs/api/java/util/Formatter.html#summary)があなたの質問に回答しました。 – VGR
それは本当に簡単な攻撃ベクトルなので、C言語にすべきではありません。 – djechlin