Ich habe diesen Code:Scanf Funktion zwischen C++ und Assembler
void scan()
{
char scanf_fmt[] = "%c";
char printf_fmt[] = "%c\n";
char character[30];
_asm
{
push 1 // Buffer size, you can also write `push size character`
lea eax, character
push eax // Pointer to character
lea eax, scanf_fmt
push eax // Pointer to format string
call scanf_s
add esp, 12 // Clean up three pushes
movzx eax, byte ptr[character] // MOVZX: Load one unsigned byte into a 32-bit-register
push eax// Character as value
lea eax, printf_fmt
push eax // Pointer to format string
call printf
add esp, 8 // Clean up two pushes era 8
}
//return 0;
}
Diese Funktion druckt das erste Zeichen in einem Wort, aber ich kopierte diese Funktion, und ich änderte den Namen, zum Beispiel: scan()
-scan2();
.
Wenn ich die neue Funktion verwende, übernimmt das Programm das vorhergehende Wort der Funktion scan
.
Wie kann ich tun, um mir ein anderes Wort zu lesen?
'% c 'verbraucht nur ein einzelnes Zeichen, und lässt den Rest im Puffer. Sie müssen diese auslesen oder verwerfen. – Jester
Danke, also Kann ich den Flush mit xor eax, eax machen? oder Wie kann ich den Flush machen? –