0
私の可変関数入力値から文字列(const char *)を取得したいとします。 しかし、以下のこのコードは動作しません.....ランタイムエラーは、結果C可変関数入力から文字列を取得する方法
void print(const char fmt[], ...) {
va_list ap;
const char *p=fmt;
va_start(ap,fmt);
while(*p) {
if(*p == '%') {
p ++;
if (*p == 'i') {
int num = va_arg(ap, int);
fprintf(output, "%d", num);
} else if (*p == 'f') {
float num = va_arg(ap, float);
fprintf(output, "%f", num);
} else if (*p == 's') {
const char* str = va_arg(ap, const char*);
fprintf(output, "%s", str);
} else
break;
p ++;
} else
break;
}
va_end(ap);
}
// This is how I call the function:
print("%s%f", "Num: ", 12.34);
任意のアイデアですか?
どのような種類の実行時エラーですか? – arnaud576875
その関数のコードの詳細と、それをどのように呼び出すかを示してください。 – Mat
なぜfprintfを直接呼び出さないのですか? – ThiefMaster