「%n」フォーマット文字列(C言語)
code:test.c
int main() {
int count_one, count_two, count_three;
printf("aiueo%n\n", &count_one);
printf("aiueo %n\n", &count_two);
printf("aiueoX%n\n", &count_three);
printf("count_one: %d\n", count_one);
printf("count_two: %d\n", count_two);
printf("count_three: %d\n", count_three);
}
code:bash
$ ./a.out
aiueo
aiueo
aiueoX
count_one: 5
count_two: 6
count_three: 6
空白もカウントする
%nで表示するわけではなく、そこまで出てきたバイト数を、ここなら例えば&count_oneに保持する。[]
また、 %n自身はカウントしない!
code:test.c
int main() {
int count_one, count_two;
printf("aiueo%n12345%n\n", &count_one, &count_two);
printf("count_one: %d\n", count_one);
printf("count_two: %d\n", count_two);
}
実行すると:
code:bash
./a.out
aiueo12345
count_one: 5
count_two: 10