heim - Software
Scanf C-Funktion: Beschreibung. Typisierte Programmiersprache Was tun mit all diesen Variablentypen?

In diesem Artikel wird die Funktion scanf() allgemein und ohne Bezugnahme auf einen bestimmten Standard erläutert. Daher sind hier Daten aus allen C99-, C11-, C++11- und C++14-Standards enthalten. Es ist möglich, dass die Funktion in einigen Standards anders funktioniert als im Artikel dargestellt.

scanf C-Funktion – Beschreibung

scanf() ist eine Funktion, die sich in der Header-Datei von stdio.h(C) und cstdio(C++) befindet, sie wird auch als formatierte Eingabe für das Programm bezeichnet. scanf liest Zeichen aus der Standardeingabe (stdin), konvertiert sie entsprechend dem Format und schreibt sie dann in die angegebenen Variablen. Format bedeutet, dass die Daten beim Empfang auf eine bestimmte Form reduziert werden. Somit wird die scanf-C-Funktion beschrieben:

scanf("%format", &variable1[, &variable2,[…]]),

wobei Variablen als Adressen übergeben werden. Der Grund für die Übergabe von Variablen an eine Funktion auf diese Weise liegt auf der Hand: Als Ergebnis ihrer Operation gibt sie einen Wert zurück, der auf das Vorhandensein von Fehlern hinweist. Daher besteht die einzige Möglichkeit, die Werte von Variablen zu ändern, darin, sie per Adresse zu übergeben. Dank dieser Methode kann die Funktion auch Daten jeglicher Art verarbeiten.

Einige Programmierer rufen aufgrund von Analogien zu anderen Sprachen Funktionen wie die Prozeduren scanf() oder printf() auf.

Mit Scanf können Sie alle grundlegenden Sprachtypen eingeben: char, int, float, string usw. Bei Variablen vom Typ String muss das Adresszeichen „&“ nicht angegeben werden, da eine Variable vom Typ String ein Array ist und ihr Name die Adresse des ersten Elements des Arrays im Computerspeicher ist.

Dateneingabeformat oder Steuerzeichenfolge

Schauen wir uns zunächst ein Beispiel für die Verwendung der C-Funktion scanf aus der Beschreibung an.

#enthalten int main() ( int x; while (scanf("%d", &x) == 1) printf("%d\n", x); return 0; //Anforderung für Linux-Systeme )

Das Eingabeformat besteht aus den folgenden vier Parametern: %[*][width][modifiers] Typ. In diesem Fall sind das „%“-Zeichen und der Typ erforderliche Parameter. Das heißt, das Mindestformat sieht so aus: „%s“, „%d“ und so weiter.

Im Allgemeinen werden die Zeichen, aus denen eine Formatzeichenfolge besteht, unterteilt in:

  • Formatbezeichner – alles, was mit dem %-Symbol beginnt;
  • Trenn- oder Leerzeichen – das sind Leerzeichen, Tabulatorzeichen (\t), neue Zeile (\n);
  • andere Zeichen als Leerzeichen.

Die Funktion ist möglicherweise unsicher.

Verwenden Sie scanf_s() anstelle von scanf().

(gepostet von Visual Studio)

Typ- oder Formatbezeichner oder Konvertierungszeichen oder Steuerzeichen

Die Beschreibung von scanf C muss mindestens einen Formatbezeichner enthalten, der am Ende von Ausdrücken angegeben wird, die mit dem „%“-Zeichen beginnen. Es teilt dem Programm mit, welche Art von Daten es bei der Eingabe erwarten soll, normalerweise über die Tastatur. Eine Liste aller Formatspezifizierer finden Sie in der folgenden Tabelle.

Bedeutung

Das Programm wartet auf die Eingabe eines Zeichens. Die zu schreibende Variable muss vom Zeichentyp char sein.

Das Programm erwartet die Eingabe einer ganzzahligen Dezimalzahl. Die Variable muss vom Typ int sein.

Das Programm erwartet eine Gleitkommazahl in Exponentialform. Die Variable muss vom Typ float sein.

Das Programm erwartet die Eingabe einer Gleitkommazahl. Die Variable muss vom Typ float sein.

7

Das Programm erwartet die Eingabe einer Gleitkommazahl. Die Variable muss vom Typ float sein.

Das Programm erwartet die Eingabe einer Oktalzahl. Die Variable muss vom Typ int sein.

Das Programm erwartet die Eingabe einer Zeichenfolge. Als Zeichenfolge gilt eine Menge beliebiger Zeichen bis zum ersten gefundenen Trennzeichen. Die Variable muss vom Typ String sein.

Das Programm erwartet die Eingabe einer Hexadezimalzahl. Die Variable muss vom Typ int sein.

Die Variable erwartet eine Zeigereingabe. Die Variable muss vom Typ Zeiger sein.

Schreibt einen ganzzahligen Wert in eine Variable, der der Anzahl der bisher von der Funktion scanf gelesenen Zeichen entspricht.

Das Programm liest eine vorzeichenlose Ganzzahl. Der Variablentyp muss eine vorzeichenlose Ganzzahl sein.

Das Programm erwartet die Eingabe einer Binärzahl. Die Variable muss vom Typ int sein.

Eine Reihe scannbarer Zeichen. Das Programm wartet auf die Eingabe von Zeichen aus einem begrenzten Pool, der zwischen scanf angegeben wurde, und funktioniert, solange Zeichen aus dem angegebenen Satz im Eingabestream vorhanden sind.

Zeichen in der Formatzeichenfolge

Sternchen (*)

Das Sternchen (*) ist ein Flag, das angibt, dass der Zuweisungsvorgang unterdrückt werden soll. Unmittelbar nach dem „%“-Zeichen wird ein Sternchen eingefügt. Zum Beispiel,

Scanf("%d%*c%d", &x, &y); //ignoriere das Zeichen zwischen zwei Ganzzahlen. scanf("%s%*d%s", str, str2); //ignoriere die Ganzzahl zwischen zwei Zeichenfolgen.

Das heißt, wenn Sie in der Konsole die Zeile „45-20“ eingeben, führt das Programm Folgendes aus:

  1. Der Variablen „x“ wird der Wert 45 zugewiesen.
  2. Der Variablen „y“ wird der Wert 20 zugewiesen.
  3. Und das Minuszeichen (Bindestrich) „-“ wird dank „%*c“ ignoriert.

Breite (oder Feldbreite)

Dies ist eine Ganzzahl zwischen dem „%“-Zeichen und dem Formatbezeichner, die die maximale Anzahl von Zeichen angibt, die während des aktuellen Lesevorgangs gelesen werden sollen.

Dabei sind einige wichtige Punkte zu beachten:

  1. scanf stoppt die Ausführung, wenn es auf ein Trennzeichen trifft, auch wenn noch nicht 20 Zeichen gezählt wurden.
  2. Wenn die Eingabe mehr als 20 Zeichen enthält, werden nur die ersten 20 davon in die Variable str geschrieben.

Typmodifikatoren (oder Präzision)

Hierbei handelt es sich um spezielle Flags, die den Typ der für die Eingabe erwarteten Daten ändern. Das Flag wird links vom Typbezeichner angegeben:

  • L oder l (kleines L) Bei Verwendung von „l“ mit den Spezifizierern d, i, o, u, x weist das Flag das Programm an, eine Eingabe vom Typ long int zu erwarten. Bei Verwendung von „l“ mit dem Spezifizierer e oder f teilt das Flag dem Programm mit, dass es mit der Eingabe eines doppelten Werts rechnen soll. Durch die Verwendung von „L“ wird dem Programm mitgeteilt, dass ein Wert vom Typ „long double“ erwartet wird. Die Verwendung von „l“ mit den Spezifizierern „c“ und „s“ teilt dem Programm mit, dass Doppelbyte-Zeichen vom Typ wchar_t erwartet werden. Beispiel: „%lc“, „%ls“, „%l“.
  • h ist ein Flag, das den Typ short angibt.
  • hh – gibt an, dass die Variable ein Zeiger auf einen Wert vom Typ „signed char“ oder „unsigned char“ ist. Das Flag kann mit den Spezifizierern d, i, o, u, x, n verwendet werden.
  • ll (zwei kleine L) – gibt an, dass die Variable ein Zeiger auf einen Wert vom Typ „signed int“ oder „unsigned long long int“ ist. Das Flag wird mit den Spezifizierern verwendet: d, i, o, u, x, n.
  • j – gibt an, dass die Variable ein Zeiger auf den Typ intmax_t oder uintmax_t aus der Header-Datei stdint.h ist. Wird mit Spezifizierern verwendet: d, i, o, u, x, n.
  • z – gibt an, dass die Variable ein Zeiger auf den Typ size_t ist, dessen Definition in stddef.h steht. Wird mit Spezifizierern verwendet: d, i, o, u, x, n.
  • t – gibt an, dass die Variable ein Zeiger auf den Typ ptrdiff_t ist. Die Definition für diesen Typ befindet sich in stddef.h. Wird mit Spezifizierern verwendet: d, i, o, u, x, n.

Das Bild mit Modifikatoren kann in Form einer Tabelle übersichtlicher dargestellt werden. Diese Beschreibung von scanf C wird für Programmierer klarer sein.

Andere Charaktere

Alle im Format vorkommenden Zeichen werden verworfen. Es ist zu beachten, dass das Vorhandensein von Leerzeichen oder Trennzeichen (Zeileumbruch, Leerzeichen, Tabulatorzeichen) in der Steuerzeichenfolge zu einem unterschiedlichen Verhalten der Funktion führen kann. In einer Version liest scanf(), ohne eine beliebige Anzahl von Trennzeichen zu speichern, bis es auf ein anderes Zeichen als das Trennzeichen trifft, und in einer anderen Version spielen Leerzeichen (nur sie) keine Rolle und der Ausdruck „%d + %d“ ist äquivalent zu „%d+%d“.

Beispiele

Schauen wir uns einige Beispiele an, die Ihnen helfen sollen, über die Funktionsweise der Funktion nachzudenken und sie genauer zu verstehen.

Scanf("%3s", str); //Wenn Sie in der Konsole die Zeile „1d2s3d1;3“ eingeben, wird nur „1d2“ in str geschrieben scanf("%dminus%d", &x, &y); //Minuszeichen zwischen zwei Zahlen werden verworfen scanf("%5", str); //Zeichen werden in str eingegeben, bis es 5 davon gibt und die Zeichen Zahlen von 0 bis 9 sind. scanf("%lf", &d); //erwartete Eingabe vom Typ double scanf("%hd", &x); //erwarte eine Zahl vom Typ short scanf("%hu", &y); //erwarte eine Zahl vom Typ unsigned short scanf("lx", &z); //erwartete Anzahl vom Typ long int

Anhand der angegebenen Beispiele können Sie sehen, wie sich die erwartete Zahl bei Verwendung verschiedener Symbole ändert.

scanf C - Beschreibung für Anfänger

Dieser Abschnitt wird für Anfänger nützlich sein. Oftmals muss man nicht so sehr eine vollständige Beschreibung von scanf C zur Hand haben, sondern eher die Details zur Funktionsweise der Funktion.

  • Die Funktion ist etwas veraltet. Es gibt verschiedene Implementierungen in Bibliotheken unterschiedlicher Versionen. Zum Beispiel die verbesserte Funktion scanf S C, deren Beschreibung auf der Microsoft-Website zu finden ist.
  • Die Anzahl der Spezifizierer im Format muss der Anzahl der an die Funktion übergebenen Argumente entsprechen.
  • Elemente des Eingabestreams dürfen nur durch Trennzeichen getrennt werden: Leerzeichen, Tabulator, Zeilenumbruch. Komma, Semikolon, Punkt usw. – diese Zeichen sind keine Trennzeichen für die Funktion scanf().
  • Wenn scanf auf ein Trennzeichen stößt, wird die Eingabe gestoppt. Wenn mehr als eine Variable zu lesen ist, fährt scanf mit dem Lesen der nächsten Variablen fort.
  • Die geringste Abweichung im Format der Eingabedaten führt zu unvorhersehbaren Ergebnissen des Programms. Es ist gut, wenn das Programm einfach mit einem Fehler endet. Aber oft funktioniert das Programm weiterhin und macht es falsch.
  • scanf("%20s ...", ...); Wenn der Eingabestream 20 Zeichen überschreitet, liest scanf die ersten 20 Zeichen und wird entweder beendet oder fährt mit dem Lesen der nächsten Variablen fort, sofern angegeben. Der nächste Scanf-Aufruf liest den Eingabestream dort weiter, wo der vorherige Scanf-Aufruf aufgehört hat. Wenn beim Lesen der ersten 20 Zeichen ein Trennzeichen auftritt, stoppt scanf die Arbeit oder fährt mit dem Lesen der nächsten Variablen fort, auch wenn für die erste Variable keine 20 Zeichen gelesen wurden. In diesem Fall werden alle nicht gezählten Zeichen an die nächste Variable angehängt.
  • Wenn der zu scannende Zeichensatz mit dem Zeichen „^“ beginnt, liest scanf die Daten, bis ein Trennzeichen oder ein Zeichen aus dem Satz gefunden wird. Beispielsweise liest „%[^A-E1-5]“ Daten aus dem Stream, bis eines der englischen Großbuchstaben A bis E oder eine der Zahlen 1 bis 5 gefunden wird.
  • Die C-Funktion scanf gibt, wie beschrieben, eine Zahl zurück, die der erfolgreichen Anzahl von Einträgen in Variablen entspricht. Wenn scanf 3 Variablen schreibt, ist das Ergebnis der erfolgreichen Ausführung der Funktion die Rückgabe der Zahl 3. Wenn scanf keine Variablen schreiben konnte, ist das Ergebnis 0. Und schließlich, wenn scanf nicht mit der Arbeit beginnen konnte Aus irgendeinem Grund wird das Ergebnis EOF sein.
  • Wenn die Funktion scanf() ihre Arbeit nicht korrekt abgeschlossen hat. Beispiel: scanf("%d", &x) – eine Zahl wurde erwartet, aber Symbole wurden als Eingabe empfangen. Der nächste Aufruf von scanf() beginnt an der Stelle im Eingabestream, an der der vorherige Funktionsaufruf endete. Um dieses Problem zu lösen, müssen Sie die problematischen Charaktere loswerden. Dies kann beispielsweise durch den Aufruf von scanf("%*s") erfolgen. Das heißt, die Funktion liest eine Zeichenfolge und verwirft sie. Auf diese clevere Weise können Sie die erforderlichen Daten weiterhin eingeben.
  • Einige Implementierungen von scanf() erlauben nicht die Verwendung von „-“ im zu scannenden Zeichensatz.
  • Der Spezifizierer „%c“ liest jedes Zeichen aus dem Stream. Das heißt, es liest auch das Trennzeichen. Um das Trennzeichen zu überspringen und mit dem Lesen des gewünschten Zeichens fortzufahren, können Sie „%1s“ verwenden.
  • Wenn Sie den Spezifizierer „c“ verwenden, ist es akzeptabel, die Breite „%10c“ zu verwenden, aber dann müssen Sie ein Array von Elementen vom Typ char als Variable an die scanf-Funktion übergeben.
  • „%“ bedeutet „alle Kleinbuchstaben des englischen Alphabets“ und „%“ bedeutet einfach 3 Zeichen: „z“, „a“, „-“. Mit anderen Worten bedeutet das Zeichen „-“ nur dann einen Bereich, wenn es zwischen zwei Zeichen in der richtigen Reihenfolge steht. Wenn „-“ am Ende eines Ausdrucks, am Anfang oder in der falschen Reihenfolge der Zeichen auf beiden Seiten steht, dann stellt es lediglich einen Bindestrich und keinen Bereich dar.

Abschluss

Damit ist die Beschreibung von scanf C abgeschlossen. Es handelt sich um eine gute Komfortfunktion für die Arbeit in kleinen Programmen und bei der Verwendung einer prozeduralen Programmiermethode. Der größte Nachteil ist jedoch die Anzahl unvorhersehbarer Fehler, die bei der Verwendung von scanf auftreten können. Daher ist es am besten, beim Programmieren die Beschreibung von scanf C vor Augen zu behalten. In großen professionellen Projekten werden iostreams verwendet, da sie über höhere Fähigkeiten verfügen, Fehler besser erkennen und verarbeiten können und auch mit erheblichen Informationsmengen arbeiten. Es sollte auch beachtet werden, dass aufgrund des Alters der Funktion in vielen Online-Quellen eine Beschreibung von scanf C auf Russisch sowie Anwendungsbeispiele verfügbar ist. Daher finden Sie die Antwort bei Bedarf immer in thematischen Foren.

Die C/C++-Standardbibliothek enthält eine Reihe von Funktionen zum Lesen und Schreiben auf der Konsole (Tastatur und Monitor). Diese Funktionen lesen und schreiben Daten als einfachen Zeichenstrom.

Das in der Programmierung verwendete Konzept des Streams ist eng mit dem alltäglichen Verständnis dieses Wortes verbunden. Der Eingabestrom kann mit einem Rohr verglichen werden, durch das Wasser (Informationen) in ein Becken (Computerspeicher) gelangt, und der Ausgabestrom kann mit einem Rohr verglichen werden, durch das Wasser das Becken verlässt. Ein wichtiges Merkmal dieser Pipe ist, dass sich Daten jeweils nur in eine Richtung bewegen können. Auch wenn das gleiche Rohr für Ein- und Ausgang verwendet wird, kann dies nicht gleichzeitig passieren: Um die Fließrichtung zu ändern, muss es gestoppt werden, es muss eine Aktion ausgeführt werden, und nur dann kann der Fluss in die entgegengesetzte Richtung geleitet werden. Ein weiteres Merkmal des Baches ist, dass er fast nie versiegt. Manchmal trocknet es aus, aber dieser Zeitraum kann nicht lange dauern, wenn das System normal funktioniert.

Die Standardausgabefunktion printf()

Die Funktion printf() ist eine Standardausgabefunktion. Mit dieser Funktion können Sie auf dem Monitorbildschirm eine Zeichenfolge, eine Zahl, den Wert einer Variablen usw. anzeigen.

Die Funktion printf() hat einen Prototyp in stdio.h
int printf(char *Steuerzeichenfolge, ...);

Bei Erfolg gibt printf() die Anzahl der gedruckten Zeichen zurück.

Die Steuerzeile enthält zwei Arten von Informationen: Zeichen, die direkt auf dem Bildschirm gedruckt werden, und Formatbezeichner, die angeben, wie die Argumente gedruckt werden.

Die Funktion printf() ist eine formatierte Ausgabefunktion. Das bedeutet, dass in den Funktionsparametern das Format der auszugebenden Daten angegeben werden muss. Das Datenformat wird durch Formatbezeichner angegeben. Der Formatbezeichner beginnt mit einem %-Zeichen, gefolgt von einem Formatcode.

Formatbezeichner:

%Mit Symbol
%D ganzzahlige Dezimalzahl
%ich ganzzahlige Dezimalzahl
%e Dezimalzahl in der Form x.xx e+xx
%E Dezimalzahl in der Form x.xx E+xx
%F
%F dezimale Gleitkommazahl xx.xxxx
%G %f oder %e, je nachdem, welcher Wert kürzer ist
%G %F oder %E, je nachdem, welcher Wert kürzer ist
Oktalzahl
%S Zeichenkette
%u vorzeichenlose Dezimalzahl
%X Hexadezimalzahl
%X Hexadezimalzahl
%% Symbol %
%P Zeiger
%N Zeiger

Darüber hinaus können die Modifikatoren l und h auf Formatbefehle angewendet werden.

%ld print long int
%hu Stempel kurz unsigniert
%Lf langer Doppelstempel

Im Formatbezeichner kann nach dem %-Symbol die Genauigkeit (Anzahl der Nachkommastellen) angegeben werden. Die Genauigkeit wird wie folgt festgelegt: %.n<код формата>. Wobei n die Anzahl der Nachkommastellen ist und<код формата>- einer der oben angegebenen Codes.

Wenn wir beispielsweise eine Variable x=10,3563 vom Typ Float haben und ihren Wert auf drei Dezimalstellen genau anzeigen möchten, sollten wir Folgendes schreiben:

printf("Variable x = %.3f",x);

Ergebnis:
Variable x = 10,356

Sie können auch die Mindestbreite des zum Drucken vorgesehenen Feldes festlegen. Wenn die Zeile oder Zahl größer als die angegebene Feldbreite ist, wird die Zeile oder Zahl vollständig gedruckt.

Wenn Sie zum Beispiel schreiben:

printf("%5d",20);

dann wird das Ergebnis wie folgt sein:
20

Bitte beachten Sie, dass die Zahl 20 nicht ganz am Anfang der Zeile gedruckt wurde. Wenn Sie möchten, dass die ungenutzten Felder des Feldes mit Nullen gefüllt werden, müssen Sie vor der Feldbreite ein 0-Symbol einfügen.

Zum Beispiel:

printf("%05d",20);

Ergebnis:
00020

Zusätzlich zu Datenformatspezifizierern kann die Steuerzeile Steuerzeichen enthalten:

\B BS, unten
\F Neue Seite, Seitenwechsel
\N Neue Zeile, Zeilenvorschub
\R Wagenrücklauf
\T Horizontale Tabellierung
\v Vertikale Registerkarte
\" Doppeltes Anführungszeichen
\" Apostroph
\\ Backslash
\0 Nullzeichen, Nullbyte
\A Signal
\N Oktalkonstante
\xN Hexadezimale Konstante
\? Fragezeichen

Am häufigsten verwenden Sie das Zeichen \n. Mit diesem Steuerzeichen können Sie in eine neue Zeile wechseln. Schauen Sie sich die Beispielprogramme an und Sie werden alles verstehen.

Beispiele für Programme.

/* Beispiel 1 */
#enthalten

void main(void)
{
int a,b,c; // Deklaration der Variablen a,b,c
a=5;
b=6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Ergebnis des Programms:
a=5, b=6, c=9

/* Beispiel 2 */
#enthalten

void main(void)
{
float x,y,z;

X=10,5;
y=130,67;
z=54;

Printf("Objektkoordinaten: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Ergebnis des Programms:
Objektkoordinaten: x:10,50, y:130,67, z:54,00

/* Beispiel 3 */
#enthalten

void main()
{
int x;

X=5;
printf("x=%d", x*2);
}

Ergebnis des Programms:
x=10

/* Beispiel 4 */
#enthalten

void main(void)
{
printf("\"Text in Anführungszeichen\"");
printf("\nSauerstoffgehalt: 100 %%");
}

Ergebnis des Programms:
„Text in Anführungszeichen“
Sauerstoffgehalt: 100 %

/* Beispiel 5 */
#enthalten

void main(void)
{
int a;

A=11; // 11 im Dezimalformat entspricht b im Hexadezimalformat
printf("a-dec=%d, a-hex=%X",a,a);
}

Ergebnis des Programms:
a-dez=11, a-hex=b

/* Beispiel 6 */
#enthalten

void main(void)
{
char ch1,ch2,ch3;

Ch1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

Ergebnis des Programms:
ABC

/* Beispiel 7 */
#enthalten

void main(void)
{
char *str="Meine Zeichenfolge.";

Printf("Das ist %s",str);
}

Ergebnis des Programms:
Das ist meine Linie.

/* Beispiel 8 */
#enthalten

void main(void)
{
printf("Hallo!\n"); // Nach dem Drucken erfolgt ein Übergang in eine neue Zeile - \n
printf("Mein Name ist Pavel."); // Dies wird in einer neuen Zeile gedruckt
}

Ergebnis des Programms:
Guten Tag!
Mein Name ist Pavel.

Die Standardeingabefunktion scanf()

Die Funktion scanf() ist eine formatierte Eingabefunktion. Mit seiner Hilfe können Sie Daten über ein Standard-Eingabegerät (Tastatur) eingeben. Eingabedaten können Ganzzahlen, Gleitkommazahlen, Zeichen, Zeichenfolgen und Zeiger sein.

Die Funktion scanf() hat den folgenden Prototyp in stdio.h:
int scanf(char *Kontrollzeichenfolge);

Die Funktion gibt die Anzahl der Variablen zurück, denen ein Wert zugewiesen wurde.

Die Steuerzeichenfolge enthält drei Arten von Zeichen: Formatbezeichner, Leerzeichen und andere Zeichen. Formatbezeichner beginnen mit dem %-Zeichen.

Formatbezeichner:

Bei der Eingabe einer Zeichenfolge mit der Funktion scanf() (Formatbezeichner %s) wird die Zeichenfolge vor dem ersten Leerzeichen eingegeben!! diese. wenn Sie die Zeichenfolge „Hallo Welt!“ eingeben. mit der Funktion scanf()


scanf("%s",str);

Nach der Eingabe besteht die resultierende Zeichenfolge, die im str-Array gespeichert wird, aus einem Wort „Hallo“. DIE FUNKTION GEHT VOR DEM ERSTEN LEERZEICHEN EINEN STRING EIN! Wenn Sie Zeichenfolgen mit Leerzeichen eingeben möchten, verwenden Sie die Funktion

char *gets(char *buf);

Mit der Funktion gets() können Sie vollständige Strings eingeben. Die Funktion gets() liest Zeichen von der Tastatur, bis das Zeilenumbruchzeichen (\n) erscheint. Das Zeilenumbruchzeichen selbst erscheint, wenn Sie die Eingabetaste drücken. Die Funktion gibt einen Zeiger auf buf zurück. buf – Puffer (Speicher) für die Eingabezeichenfolge.

Obwohl gets() nicht das Thema dieses Artikels ist, schreiben wir ein Beispielprogramm, mit dem Sie eine ganze Zeile über die Tastatur eingeben und auf dem Bildschirm anzeigen können.

#enthalten

void main(void)
{
Char-Puffer; // Array (Puffer) für die Eingabezeichenfolge

Gets(buffer); // Geben Sie eine Zeile ein und drücken Sie die Eingabetaste
printf("%s",buffer); // den eingegebenen String auf dem Bildschirm ausgeben
}

Noch ein wichtiger Hinweis! Um Daten mit der Funktion scanf() einzugeben, müssen Variablenadressen als Parameter übergeben werden, nicht die Variablen selbst. Um die Adresse einer Variablen zu erhalten, müssen Sie dem Variablennamen ein & (kaufmännisches Und) voranstellen. Das &-Zeichen bedeutet, dass die Adresse übernommen wird.

Was bedeutet Adresse? Ich werde versuchen, es zu erklären. Im Programm haben wir eine Variable. Eine Variable speichert ihren Wert im Computerspeicher. Das ist also die Adresse, die wir mit & erhalten, und ist die Adresse im Computerspeicher, wo der Wert der Variablen gespeichert ist.

Schauen wir uns ein Beispielprogramm an, das uns zeigt, wie man & verwendet

#enthalten

void main(void)
{
int x;

Printf("Variable x eingeben:");
scanf("%d",&x);
printf("Variable x=%d",x);
}

Kehren wir nun zur Steuerzeile der Funktion scanf() zurück. Noch einmal:

int scanf(char *Kontrollzeichenfolge);

Das Leerzeichen in der Steuerzeichenfolge bewirkt, dass ein oder mehrere Leerzeichen im Eingabestream übersprungen werden. Neben dem Leerzeichen ist auch ein Tabulator- oder Newline-Zeichen zu erkennen. Ein Nicht-Null-Zeichen gibt an, dass das Zeichen gelesen und verworfen wird.

Die Trennzeichen zwischen den beiden Zahlen, die Sie eingeben, sind Leerzeichen, Tabulator oder Zeilenumbruch. Das * nach dem % und vor dem Formatcode (Formatbezeichner) befiehlt, dass der Datentyp gelesen, aber nicht diesem Wert zugewiesen wird.

Zum Beispiel:

scanf("%d%*c%d",&i,&j);

Durch die Eingabe von 50+20 wird die Variable i auf 50 und die Variable j auf 20 gesetzt, und das +-Zeichen wird gelesen und ignoriert.

Der Formatbefehl kann die größte zu lesende Feldbreite angeben.

Zum Beispiel:

scanf("%5s",str);

gibt an, dass die ersten 5 Zeichen aus dem Eingabestream gelesen werden müssen. Wenn Sie 1234567890ABC eingeben, enthält das str-Array nur 12345, die restlichen Zeichen werden ignoriert. Trennzeichen: Leerzeichen, Tabulator und Zeilenumbruch – bei der Eingabe eines Symbols werden sie wie alle anderen Zeichen behandelt.

Wenn in der Steuerzeichenfolge andere Zeichen vorkommen, dienen diese dazu, das entsprechende Zeichen zu identifizieren und zu überspringen. Zeichenstrom-10plus20-Operator

scanf("%dplus%d",&x,&y);

weist der Variablen x den Wert 10 und der Variablen y den Wert 20 zu und überspringt die Pluszeichen, da sie in der Steuerzeichenfolge vorkommen.

Eine der leistungsstarken Funktionen der Funktion scanf() ist ihre Fähigkeit, einen Scansatz anzugeben. Der Suchsatz definiert den Zeichensatz, mit dem die von der Funktion scanf() gelesenen Zeichen verglichen werden. Die Funktion scanf() liest Zeichen, solange sie im Suchsatz erscheinen. Sobald das eingegebene Zeichen nicht im Suchsatz gefunden wird, wechselt die Funktion scanf() zum nächsten Formatbezeichner. Der Suchsatz wird durch eine Liste von Zeichen in eckigen Klammern definiert. Das %-Zeichen steht vor der öffnenden Klammer. Schauen wir uns das anhand eines Beispiels an.

#enthalten

void main(void)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
Geben wir eine Reihe von Zeichen ein:
12345abcdefg456

Das Programm zeigt auf dem Bildschirm Folgendes an:
12345
abcdefg456

Bei der Angabe eines Suchsatzes können Sie auch den Bindestrich verwenden, um den Abstand sowie die maximale Breite des Eingabefelds festzulegen.

scanf("%10", str1);

Sie können auch Zeichen definieren, die nicht im Suchsatz enthalten sind. Dem ersten dieser Zeichen ist ein ^ vorangestellt. Viele Zeichen unterscheiden zwischen Klein- und Großbuchstaben.

Ich möchte Sie daran erinnern, dass Sie bei Verwendung der Funktion scanf() Variablenadressen als Parameter an diese übergeben müssen. Der obige Code wurde geschrieben:

char str; // Array mit 80 Zeichen
scanf("%s",str);

Beachten Sie, dass vor str kein & steht. Dies geschieht, weil str ein Array ist und der Array-Name – str ein Zeiger auf das erste Element des Arrays ist. Daher sollte das &-Zeichen nicht verwendet werden. Wir übergeben die Adresse bereits an die Funktion scanf(). Einfach ausgedrückt ist str die Adresse im Computerspeicher, an der der Wert des ersten Elements des Arrays gespeichert wird.

Beispiele für Programme.

Beispiel 1.
Dieses Programm zeigt die Anfrage „Wie alt sind Sie?:“ an und wartet auf die Dateneingabe. Wenn Sie beispielsweise die Zahl 20 eingeben, zeigt das Programm die Zeile „Sie sind 20 Jahre alt.“ an. Beim Aufruf der scanf()-Funktion setzen wir ein &-Zeichen vor die Altersvariable, da die scanf()-Funktion Variablenadressen benötigt. Die Funktion scanf() schreibt den eingegebenen Wert an die angegebene Adresse. In unserem Fall wird der eingegebene Wert 20 an die Adresse der Altersvariablen geschrieben.

/* Beispiel 1 */

#enthalten

void main(void)
{
int Alter;

Printf("\nWie alt bist du?:");
scanf("%d",&age);
printf("Du bist %d Jahre alt.", age);
}

Beispiel 2.
Rechnerprogramm. Dieser Rechner kann nur Zahlen addieren. Wenn Sie 100+34 eingeben, liefert das Programm das Ergebnis: 100+34=134.

/* Beispiel 2 */

#enthalten

void main(void)
{
int x, y;

Printf("\nRechner:");
scanf("%d+%d", &x, &y);
printf("\n%d+%d=%d", x, y, x+y);
}

Beispiel 3.
Dieses Beispiel zeigt, wie Sie die Lesefeldbreite einstellen. In unserem Beispiel beträgt die Feldbreite fünf Zeichen. Wenn Sie eine Zeichenfolge mit einer großen Anzahl von Zeichen eingeben, werden alle Zeichen nach dem 5. verworfen. Beachten Sie den Funktionsaufruf scanf(). Das &-Zeichen steht nicht vor dem Array-Namen name, da der Array-Name name die Adresse des ersten Elements des Arrays ist.

/* Beispiel 3 */

#enthalten

void main(void)
{
Char-Name;

Printf("\nGeben Sie Ihren Benutzernamen ein (nicht mehr als 5 Zeichen):");
scanf("%5s", Name);
printf("\nSie haben %s eingegeben", name);
}

Beispiel 4.
Das letzte Beispiel in diesem Artikel zeigt, wie ein Suchsatz verwendet werden kann. Geben Sie nach dem Start des Programms eine Zahl von 2 bis 5 ein.

/* Beispiel 4 */

#enthalten

void main(void)
{
Saibling;

Printf("Ihre Bewertung ist 2,3,4,5:");
scanf("%", &bal);
printf("\nRating %c", bal);
}

Diese Tutorials sind für jeden geeignet, egal ob Sie neu in der Programmierung sind oder über umfassende Programmiererfahrung in anderen Sprachen verfügen! Dieses Material richtet sich an diejenigen, die die C/C++-Sprachen von ihren Grundlagen bis hin zu den komplexesten Strukturen erlernen möchten.

C++ ist eine Programmiersprache. Mit Kenntnissen dieser Programmiersprache können Sie Ihren Computer auf höchstem Niveau steuern. Im Idealfall können Sie den Computer tun lassen, was Sie wollen. Unsere Website hilft Ihnen, die Programmiersprache C++ zu beherrschen.

Installation /IDE

Das allererste, was Sie tun sollten, bevor Sie mit dem Erlernen von C++ beginnen, ist sicherzustellen, dass Sie über eine IDE verfügen – eine integrierte Entwicklungsumgebung (das Programm, in dem Sie programmieren). Wenn Sie keine IDE haben, dann sind Sie hier genau richtig. Sobald Sie sich für eine IDE entschieden haben, installieren Sie sie und üben Sie das Erstellen einfacher Projekte.

Einführung in C++

Die Sprache C++ besteht aus einer Reihe von Befehlen, die dem Computer sagen, was er tun soll. Dieser Befehlssatz wird üblicherweise Quellcode oder einfach Code genannt. Befehle sind entweder „Funktionen“ oder „Schlüsselwörter“. Schlüsselwörter (für C/C++ reservierte Wörter) sind die Grundbausteine ​​der Sprache. Funktionen sind komplexe Bausteine, weil sie als einfachere Funktionen geschrieben sind – Sie werden dies in unserem allerersten Programm sehen, das unten gezeigt wird. Diese Funktionsstruktur ähnelt dem Inhalt eines Buches. Der Inhalt kann die Kapitel des Buches anzeigen, jedes Kapitel im Buch kann seinen eigenen Inhalt bestehend aus Absätzen haben, jeder Absatz kann seine eigenen Unterabsätze haben. Obwohl C++ viele allgemeine Funktionen und reservierte Wörter bereitstellt, die Sie verwenden können, besteht dennoch die Notwendigkeit, eigene Funktionen zu schreiben.

In welchem ​​Teil des Programms beginnt es? Jedes Programm in C++ hat eine Funktion, sie wird Haupt- oder Hauptfunktion genannt, die Programmausführung beginnt mit dieser Funktion. Von der Hauptfunktion aus können Sie auch beliebige andere Funktionen aufrufen, unabhängig davon, ob es sich um von uns geschriebene oder, wie bereits erwähnt, vom Compiler bereitgestellte Funktionen handelt.

Wie greifen Sie auf diese Standardfunktionen zu? Um auf die Standardfunktionen des Compilers zuzugreifen, müssen Sie die Header-Datei mit der Präprozessoranweisung #include einbinden. Warum ist das effektiv? Schauen wir uns ein Beispiel eines Arbeitsprogramms an:

#enthalten << "Моя первая программа на С++\n"; cin.get(); }

Betrachten wir die Elemente des Programms im Detail. #include ist eine „Präprozessor“-Direktive, die den Compiler anweist, den Code aus der iostream-Header-Datei in unser Programm einzufügen, bevor die ausführbare Datei erstellt wird. Durch die Verbindung einer Header-Datei mit einem Programm erhalten Sie Zugriff auf viele verschiedene Funktionen, die Sie in Ihrem Programm verwenden können. Beispielsweise erfordert der cout-Operator iostream . Zeile mit Namespace std; weist den Compiler an, eine Gruppe von Funktionen zu verwenden, die Teil der Standardbibliothek std sind. Diese Zeile ermöglicht dem Programm auch die Verwendung von Operatoren wie cout . Das Semikolon ist Teil der C++-Syntax. Es teilt dem Compiler mit, dass dies das Ende des Befehls ist. Sie werden gleich sehen, dass Semikolons zum Beenden der meisten Befehle in C++ verwendet werden.

Die nächste wichtige Zeile des Programms ist int main(). Diese Zeile teilt dem Compiler mit, dass es eine Funktion namens main gibt und dass die Funktion eine Ganzzahl zurückgibt. Geschweifte Klammern ( und ) signalisieren den Beginn (und das Ende) einer Funktion. Geschweifte Klammern werden auch in anderen Codeblöcken verwendet, sie geben jedoch immer eines an – den Anfang bzw. das Ende des Blocks.

In C++ wird das Cout-Objekt zum Anzeigen von Text verwendet (ausgesprochen „C out“). Er verwendet Symbole<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

Der nächste Befehl ist cin.get() . Dies ist ein weiterer Funktionsaufruf, der Daten aus dem Eingabedatenstrom liest und auf das Drücken der ENTER-Taste wartet. Dieser Befehl verhindert, dass das Konsolenfenster geschlossen wird, bis die EINGABETASTE gedrückt wird. Dies gibt Ihnen Zeit, die Ausgabe des Programms zu sehen.

Beim Erreichen des Endes der Hauptfunktion (der schließenden geschweiften Klammer) gibt unser Programm den Wert 0 an das Betriebssystem zurück. Dieser Rückgabewert ist wichtig, da das Betriebssystem durch seine Analyse beurteilen kann, ob unser Programm erfolgreich abgeschlossen wurde oder nicht. Ein Rückgabewert von 0 bedeutet Erfolg und wird automatisch zurückgegeben (jedoch nur für den Datentyp int; bei anderen Funktionen müssen Sie den Wert manuell zurückgeben). Wenn wir jedoch etwas anderes zurückgeben wollten, beispielsweise 1, müssten wir dies tun manuell.

#enthalten Verwenden des Namensraums std; int main() ( cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

Um das Material zu konsolidieren, geben Sie den Programmcode in Ihre IDE ein und führen Sie ihn aus. Sobald das Programm ausgeführt wurde und Sie die Ausgabe gesehen haben, experimentieren Sie ein wenig mit der cout-Anweisung. Dies wird Ihnen helfen, sich an die Sprache zu gewöhnen.

Kommentieren Sie unbedingt Ihre Programme!

Fügen Sie Kommentare zu Ihrem Code hinzu, um ihn nicht nur für Sie selbst, sondern auch für andere klarer zu machen. Der Compiler ignoriert Kommentare beim Ausführen von Code, sodass Sie eine beliebige Anzahl von Kommentaren verwenden können, um den tatsächlichen Code zu beschreiben. Um einen Kommentar zu erstellen, verwenden Sie oder // , was dem Compiler mitteilt, dass der Rest der Zeile ein Kommentar ist, oder /* und dann */ . Wenn Sie das Programmieren lernen, ist es hilfreich, Teile des Codes kommentieren zu können, um zu sehen, wie sich die Ausgabe des Programms ändert. Sie können sich ausführlich über die Kommentartechnik informieren.

Was tun mit all diesen Arten von Variablen?

Manchmal kann es verwirrend sein, mehrere Variablentypen zu haben, wenn einige Variablentypen redundant zu sein scheinen. Es ist sehr wichtig, den richtigen Variablentyp zu verwenden, da einige Variablen mehr Speicher benötigen als andere. Darüber hinaus sind Gleitkommazahlen, die Datentypen float und double aufgrund der Art und Weise, wie sie im Speicher gespeichert werden, „ungenau“ und sollten nicht verwendet werden, wenn ein präziser ganzzahliger Wert gespeichert werden muss.

Variablen in C++ deklarieren

Um eine Variable zu deklarieren, verwenden Sie den Syntaxtyp<имя>; . Hier sind einige Beispiele für Variablendeklarationen:

Int num; char-Zeichen; float num_float;

Es ist zulässig, mehrere Variablen des gleichen Typs in einer Zeile zu deklarieren; dazu müssen sie jeweils durch ein Komma getrennt werden.

Int x, y, z, d;

Wenn Sie genau hingesehen haben, ist Ihnen vielleicht aufgefallen, dass auf eine Variablendeklaration immer ein Semikolon folgt. Erfahren Sie mehr über die Konvention „zur Benennung von Variablen“.

Häufige Fehler beim Deklarieren von Variablen in C++

Wenn Sie versuchen, eine nicht deklarierte Variable zu verwenden, wird Ihr Programm nicht kompiliert und Sie erhalten eine Fehlermeldung. In C++ wird bei allen Sprachschlüsselwörtern, allen Funktionen und allen Variablen die Groß-/Kleinschreibung beachtet.

Verwenden von Variablen

Jetzt wissen Sie also, wie man eine Variable deklariert. Hier ist ein Beispielprogramm, das die Verwendung einer Variablen demonstriert:

#enthalten Verwenden des Namensraums std; int main() ( int number; cout<< "Введите число: "; cin >>Anzahl; cin.ignore(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Werfen wir einen Blick auf dieses Programm und untersuchen wir seinen Code Zeile für Zeile. Das Schlüsselwort int gibt an, dass Zahl eine ganze Zahl ist. Die Funktion cin >> liest den Wert in number ein, der Benutzer muss nach der eingegebenen Zahl die Eingabetaste drücken. cin.ignore() ist eine Funktion, die ein Zeichen liest und ignoriert. Wir haben unsere Eingabe in das Programm organisiert; nach der Eingabe einer Zahl drücken wir die ENTER-Taste, ein Symbol, das auch an den Eingabestream übertragen wird. Wir brauchen es nicht, also werfen wir es weg. Beachten Sie, dass die Variable als Ganzzahltyp deklariert wurde. Wenn der Benutzer versucht, eine Dezimalzahl einzugeben, wird diese abgeschnitten (d. h. der Dezimalteil der Zahl wird ignoriert). Versuchen Sie, eine Dezimalzahl oder eine Zeichenfolge einzugeben. Wenn Sie das Beispielprogramm ausführen, hängt die Antwort vom Eingabewert ab.

Beachten Sie, dass beim Drucken aus einer Variablen keine Anführungszeichen verwendet werden. Das Fehlen von Anführungszeichen teilt dem Compiler mit, dass eine Variable vorhanden ist und dass das Programm daher den Wert der Variablen überprüfen sollte, um den Variablennamen bei der Ausführung durch ihren Wert zu ersetzen. Mehrere Shift-Anweisungen in derselben Zeile sind durchaus akzeptabel und die Ausgabe erfolgt in derselben Reihenfolge. Sie sollten Zeichenfolgenliterale (in Anführungszeichen eingeschlossene Zeichenfolgen) und Variablen trennen und jeder ihren eigenen Umschaltoperator zuweisen<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Werte verändern und vergleichen

Unabhängig davon, welche Art von Daten Sie verwenden, sind Variablen ohne die Möglichkeit, ihren Wert zu ändern, natürlich nicht sehr interessant. Im Folgenden sind einige Operatoren aufgeführt, die in Verbindung mit Variablen verwendet werden:

  • * Multiplikation,
  • - Subtraktion,
  • + Ergänzung,
  • / Aufteilung,
  • = Aufgabe,
  • == Gleichheit,
  • >mehr
  • < меньше.
  • != ungleich
  • >= größer oder gleich
  • <= меньше или равно

Um das Ergebnis der Variablen links zuzuweisen, müssen rechts vom Zuweisungszeichen Operatoren verwendet werden, die mathematische Funktionen ausführen.

Hier sind einige Beispiele:

A = 4 * 6; // Zeilenkommentar und Semikolon verwenden, a ist gleich 24 a = a + 5; // gleich der Summe aus Originalwert und fünf a == 5 // weist keine fünf zu, prüft, ob es gleich 5 ist oder nicht

Sie verwenden == häufig in Konstrukten wie bedingten Anweisungen und Schleifen.

A< 5 // Проверка, a менее пяти? a >5 // Überprüfen Sie, ob es mehr als fünf ist? a == 5 // Prüfung, ist a gleich fünf? a != 5 // Überprüfen Sie, ob es nicht gleich fünf ist? a >= 5 // Prüfen, ob a größer oder gleich fünf ist? A<= 5 // Проверка, a меньше или равно пяти?

Diese Beispiele zeigen die Verwendung von Vergleichszeichen nicht sehr deutlich, aber wenn wir mit der Untersuchung von Auswahloperatoren beginnen, werden Sie verstehen, warum dies notwendig ist.

1. Einleitung

Die Programmierung erfordert neue universelle algorithmische Modelle, und Hardware implementiert Algorithmen nicht nur in einer anderen Form, sondern auch auf der Grundlage eines anderen algorithmischen Modells – Automaten. Das Ausleihen von Technologie aus der Hardwareentwicklung ist die Schlüsselidee der Automatenprogrammierung. Die Synthese digitaler Geräte unterscheidet sich jedoch von der Programmierung. Aber wenn man sich ein Modell ausleiht, ist es einerseits nicht ratsam, es wesentlich zu verändern, und andererseits kann man die bereits vorhandene Theorie und Praxis der Programmierung nicht außer Acht lassen.

Als nächstes betrachten wir die SWITCH-Technologie zum Entwerfen von Automatenprogrammen, in denen Sie ständig auf ähnliche Prozesse stoßen. Einerseits veränderte es das Finite-State-Machine-Modell so sehr, dass es tatsächlich über den Rahmen der Automatentheorie hinausging. Und andererseits führt es Konzepte in die Programmierung ein, die für Programmierer schwer zu verstehen und manchmal einfach überflüssig sind, weil Es gibt bekanntere Analogien aus der Programmtheorie und der Programmierpraxis.

Als Grundlage für die Diskussion der Probleme der automatischen Programmierung nehmen wir den aktuellen Vortrag von Shalyto A.A. und seine „Programmier“-Artikel zur Definition des automatischen Programmierparadigmas.

Erlernen der Grundlagen und Feinheiten der Programmiersprache C++. Ein Lehrbuch mit praktischen Aufgaben und Tests. Möchten Sie Programmieren lernen? Dann sind Sie hier genau richtig – hier gibt es kostenlose Programmierschulungen. Unabhängig davon, ob Sie erfahren sind oder nicht, helfen Ihnen diese Programmierlektionen dabei, mit dem Erstellen, Kompilieren und Debuggen von C++-Programmen in einer Vielzahl von Entwicklungsumgebungen zu beginnen: Visual Studio, Code::Blocks, Xcode oder Eclipse.

Viele Beispiele und ausführliche Erklärungen. Perfekt sowohl für Anfänger (Dummies) als auch für Fortgeschrittene. Alles wird von Grund auf bis ins Detail erklärt. Diese Lektionen (über 200) vermitteln Ihnen eine gute Grundlage für das Verständnis der Programmierung nicht nur in C++, sondern auch in anderen Programmiersprachen. Und es ist absolut kostenlos!

Außerdem werden die schrittweise Erstellung eines Spiels in C++, die SFML-Grafikbibliothek und mehr als 50 Aufgaben behandelt, mit denen Sie Ihre Fähigkeiten und Kenntnisse in C++ testen können. Ein zusätzlicher Bonus ist.

Für das erneute Posten von +20 zu Karma und meine Dankbarkeit!

Kapitel Nr. 0. Einführung. Beginn der Arbeiten

Kapitel Nr. 1. C++-Grundlagen

Kapitel Nr. 2. Variablen und grundlegende Datentypen in C++

Kapitel Nr. 3. Operatoren in C++

Kapitel Nr. 4. Gültigkeitsbereich und andere Arten von Variablen in C++

Kapitel Nr. 5. Die Reihenfolge, in der Code in einem Programm ausgeführt wird. Schleifen und Verzweigungen in C++



 


Lesen:



Bewertung der besten kabellosen Kopfhörer

Bewertung der besten kabellosen Kopfhörer

Ist es möglich, universelle Ohren günstig zu kaufen? 3.000 Rubel – kann man für so viel Geld hochwertige Kopfhörer kaufen? Wie sich herausstellte, ja. Und Rede...

Die Hauptkamera eines Mobilgeräts befindet sich meist auf der Rückseite des Gehäuses und dient zum Aufnehmen von Fotos und Videos

Die Hauptkamera eines Mobilgeräts befindet sich meist auf der Rückseite des Gehäuses und dient zum Aufnehmen von Fotos und Videos

Eine aktualisierte Version des Tablets mit verbesserten Eigenschaften und hoher Autonomie. Acer-Smartphones werden selten besucht...

So wechseln Sie zu einem anderen Betreiber und behalten dabei Ihre Nummer

So wechseln Sie zu einem anderen Betreiber und behalten dabei Ihre Nummer

Das Gesetz zur Beibehaltung einer Telefonnummer beim Wechsel eines Teilnehmers zu einem anderen Mobilfunkanbieter ist in Russland am 1. Dezember in Kraft getreten. Es stellte sich jedoch heraus, dass...

Bewertung eines Phablets, teuer, aber sehr kompetent

Bewertung eines Phablets, teuer, aber sehr kompetent

Bewertung eines Phablets, teuer, aber sehr kompetent 20.03.2015 Ich bin der einzige Schuhmacher der Welt ohne Stiefel, ein Smartphone-Rezensent ohne eigenes Smartphone....

Feed-Bild RSS