-3
va_listを使わずに独自のprintfとscanfを書く必要があります。私はprintfを実装しました。scanfを書くときはそれを基にしたいと思いますが、この場合ポインタの扱い方はわかりません。どのように症例のように見えるか教えていただけますか?va_listを持たない私のscanf
void myprintf (char *format, ...) {
char *p = (char *) &format + 12 * sizeof(int);
char *s = format;
int number;
char** string;
for(; *s != '\0'; ++s) {
if (*s == '%') {
switch (*(s+1))
{
case 's':
string = (char**) p;
write(1, string[0], strlen(string[0]));
p += 2 * sizeof(int);
++s;
break;
case 'd':
number = *((int *)p);
write(1,intToArray(number),strlen(intToArray(number)));
p += 2 * sizeof (int);
++s;
break;
default:
write(1, "%", 1);
}
} else {
write(1, s, 1);
}
}
}
あなたのコードは、例えば上で動作しません。 ARM、RISC-V、またはIBM Zシリーズをサポートします。 –
@BasileStarynkevitchそれは彼の宿題とは無関係です。もちろん... – Ctx