Ich habe zwei Probleme. Beide können durch diesen einfachen Code dargestellt werden (kompilierte mit g ++ -Wall -O2 -std = C++ 14):fprintf hat Probleme mit Zeichen von einer Funktion zurückgegeben
#include <string>
using namespace std;
const char *printi(const unsigned long &i) {
return to_string(i)).c_str();
}
int main() {
unsigned long i1 = 1; unsigned long i2 = 2;
fprintf(stderr, "%s%s\n", printi(i1), printi(i2));
}
Problem nicht. 1 - Es wird "11" gedruckt, während "12" gedruckt werden soll.
Problem-Nr. 2 - Manchmal druckt es überhaupt keine Zahlen, sondern seltsame Zeichen.
Interessanter wenn ich laufe diesen Code bekomme ich 22 als meine Ausgabe. Warum druckst du auf "stderr" statt "stdout"? –
Sie geben eine temporäre = schlechte Nachricht zurück. – AndyG
Wie kann ich arbeiten, wenn ich die von meiner Funktion zurückgegebenen Werte nicht verwenden kann? :(Ich muss diese Zeichenfolge in fprintf setzen ... (der gesamte Code ist nur eine Abstraktion von etwas viel größer, und das ist eine Debug-Informationen, deshalb ist es stderr) – Jecke