#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t')
printf("\\t");
else if (c == '\b')
printf("\\b");
else if (c == '\\')
printf("\\\\");
else
putchar(c);
}
return 0;
}
In diesem Fall für eine Eingabe vonC-Programmierung, Kann jemand das erklären?
hi how are you\doing
Ich erhalte eine Ausgabe
hi\thow\tare\tyou\\doing
#include <stdio.h>
int main() {
int c;
while ((c = getchar()) != EOF) {
if (c == '\t') {
c = '\b';
printf("\\t");
}
if (c == '\b') {
c = '\b';
printf("\\b");
}
if (c == '\\') {
c = '\b';
printf("\\\\");
}
putchar(c);
}
return 0;
}
Wenn ich laufe dieses Programm mit einem Eingang
hi how are you\doing
(Die großen Räume sind Tabs)
ich diese Ausgabe
hi\t\how\t\are\t\you\doing
-Code erhalten:
#include <stdio.h>
int main() {
int c;
c = '\b';
putchar(c);
return 0;
}
On läuft dies, ich nichts. Keine Leistung. Zurück zur Shell-Eingabeaufforderung.
Genauer gesagt, im ersten Programm mir die Ausgabe Ich möchte, aber im zweiten Programm bekomme ich die Schrägstriche nach jedem \t
aber nicht nach den \
würde ich \\\
erwarten, dass der Ausgang bei der Suche sein, wie \t
wurden \t\
, verursacht '\ b' das? Wenn ja, wie funktioniert es? Aber wenn ja, warum geschieht das nicht auch im dritten Programm?
lief dies auf rasbian Standard-GCC-Compiler und Mingw msys-gcc-Paket für Windows.
' '\ b'' ist "Rücktaste". Also bekommst du nichts. –
Ja, aber im Fall der ersten Ausgabe, bekomme ich ein "\" nach "\ t" und wenn es "\\" drucken soll, druckt es einfach "\" – user6723034
'\\ 'ist ein * escape * . Normalerweise ist die Single '\ '' Teil einer * Escape-Sequenz * wie '\'. Wenn Sie einen doppelten Schrägstrich setzen, wird die Flucht beendet und ein einzelner Schrägstrich als tatsächlicher Ausdruck ausgegeben. Ähnlich mit '"% "' in 'printf', was normalerweise eine Formatangabe bedeutet. Wenn Sie wirklich ein Prozentzeichen wollen, müssen Sie '' %% '' setzen, um die erwartete Sequenz zu besiegen. –