Lange texte eingeben.

glader

Gesperrt
Hallo zusammen.

Ich habe ein Problem, was wahrscheinlich sehr leicht zu lösen ist, aber ich komme im moment einfach nicht drauf und habe über die Suche auch nichts gefunden.
Ich schreibe grade mit Dev-C++ ein Kommandzeilen-Programm indem man einen text eingeben kann, der zu einem späteren Zeitpunkt in einer Datei gespeichert wird. Allerdings ist die Eingbe auf nur ca. 4160 Zeichen ( 52 Zeilen ) beschränkt obwohl ich die Eingabe über ein char Variable mit 1000000 Arrays mache. Wie kann ich diesen Text verlängern?

Code:
char c_text[1000000];

system ("cls");
    cout<<"\n\n\n";
    cout<<"\tBitte geben Sie den Text ein.\n\n\t>> ";
    gets(c_text);

Ich habe schon versucht c_text statt als char als String zu deklarieren aber ich weiß ehrlichgesgt nicht, wie man direkt in einen Stringvariable schreiben kann.
Es wäre nett wenn einer der Profis einen Tip für mich hätte.
 
Hi.

Ich denke das Problem ist die DOS-Box in der dein Programm läuft. Der Puffer für eine Zeile ist 4KB, also 4096 Zeichen groß. Ist dieser Puffer voll kannst du keine Zeichen mehr eingeben und mußt die Eingabe abschliessen. Wozu willst du denn aber auch eine Zeile mit so vielen Zeichen eingeben? Kannst du das nicht in mehrere Zeilen aufteilen?

Du solltest generell statt gets die fgets Funktion benutzen.

Gruß
 
Zwar wurde die Ursache bereits geklärt, aber: Weg mit dem Müll in C++!
C++:
#include <iostream>
#include <string>

int main() 
{
    using namespace std;
    string input;
    cout << "Text:" << endl;
    getline(cin, input); // oder anderst herum, bin nicht sicher
}
 
Zurück