“format string argument is not a string type” というエラーメッセージは、C 言語の printf 関数が文字列型以外の引数を渡された場合に発生します。
例えば、次のようなコードを見てみましょう。
x
13
13
1
2
3
int main(void) {
4
int x = 123;
5
6
// 文字列型の引数を渡して printf 関数を呼び出すと、正常に動作します。
7
printf("x = %d\n", x);
8
9
// 整数型の引数を渡して printf 関数を呼び出すと、エラーが発生します。
10
printf(123, x);
11
12
return 0;
13
}
このコードでは、最初の printf 関数の呼び出しでは、文字列型の引数として “x = %d\n” を渡しています。そのため、この printf 関数は正常に動作します。
しかし、2番目の printf 関数の呼び出しでは、整数型の引数として 123 を渡しています。これは、printf 関数の仕様では、最初の引数は文字列型である必要があります。そのため、この printf 関数はエラーになります。
このように、C 言語では printf 関数に文字列型以外の引数が渡された場合、”format string argument is not a string type” というエラーメッセージが発生することになります。
コメント