Wie Wörter einlesen C++?
Hallo ich möchte in einem Konsolenprogramm in C++mit #include <stdio.h> Wörter einlesen. Ich hab schonmal von string gehört aber nix gefunden was mit stdio.h zutun hat kann mir wer weiterhelfen?
1 Antwort
In c++ kannst du mit std::cin in einen `string` streamen:
#include <iostream>
#include <string>
std::string input;
std::cin >> input;
std::cout << input;
In c solltest du `getline()` verwenden¹. Das reserviert automatisch Arbeitsspeicher und vermeidet Bufferoverflows mit UB oder verlorenen Daten:
#include <stdio.h>
#include <stdlib.h>
char *input = NULL;
size_t len;
if (getline(&input, &len, stdin) != -1) {
printf("%s", input);
}
free(input);
¹ falls "Dynamic memory extensions" verfügbar sind. Sonst musst du manuell einen Buffer reservieren und z.b. mit fgets() oder scanf() einlesen.
Woher ich das weiß:eigene Erfahrung – Langjähriger Poweruser & praktische Programmiererfahrung