【C言語】
printfの書式で%(パーセント)を表示したい

printfで %を表示

warning: spurious trailing ‘%’ in format

warning: invalid conversion specifier ‘x’

warning: unknown conversion type character ‘x’ in format

[-Wformat=]
[-Wformat-invalid-specifier]

警告: 無効な変換指定子 ‘ \x0a’ です。


■printfで%を表示したい

#include <stdio.h>
int main(void)
{
    printf("80%->90%->");
    printf("100%");
    printf("\n");
    printf("エネルギー充填120%\n");
    printf("降水確率30%\n");
    printf("消費税8%と10%の違いは何ですか?\n");
}

%とだけ記述すると警告がいっぱい出ます。


■%%と2回記述して下さい

#include <stdio.h>
int main(void)
{
    printf("80%%->90%%->");
    printf("100%%");
    printf("\n");
    printf("エネルギー充填120%%\n");
    printf("降水確率30%%\n");
    printf("消費税8%%と10%%の違いは何ですか?\n");
}

%を2個連続で記述して
%%としてください。


■putsでも出来ます

#include <stdio.h>
int main(void)
{
    puts("80%->90%->100%");
    puts("エネルギー充填120%");
    puts("降水確率30%");
    puts("消費税8%と10%の違いは何ですか?");
}

ただしputsを使う場合は
¥nが不要になります。


参考:

FIO47-C. 書式指定文字列を正しく使う