Ich bin in der Entwicklung auf einem Junk-Datei-Generator, aber aus irgendeinem Grund, wenn ich eine große Zahl verwenden wird es unendlich piepsen, bis die Datei fertig ist, ich denke, es gibt ein Zeichen irgendwo in die ASCII-Tabelle, oder es ist überfüllt und verursacht einen Fehlerton. Wer möchte erklären, warum dieses Ding mich anschreit?Stringüberlauf in C++? Dieses unaufhörliche Piepen ist seltsam
#include <string>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <fstream>
#include <time.h>
#include <windows.h>
#define print cout<<
using namespace std;
int numberof,i;
char charvalue;
string charlist,filename;
int main()
{
srand (time(NULL));
print "What do you want the name of your file to be?(with a .txt extension)\n";
getline(cin,filename);
print "\nHow many characters do you want?\n";
cin>>numberof;
for(numberof>0;numberof!=0;numberof--)
{
i = rand() % 255 + 32;
charvalue=i;
charlist=charlist+charvalue;
print charlist;
}
ofstream writefile(filename.c_str());
writefile<<charlist;
writefile.close();
ShellExecute(NULL, "open", filename.c_str(), NULL, NULL, SW_SHOWNORMAL);
return 0;
}
scheint an dieser Stelle wie die Charaktere in Ordnung am Ende herauskommen, aber es schreibt nur ein Viertel von ihnen in die Textdatei. Wer weiß warum?
"unendlich, bis die Datei fertig ist". Dieses Wort, "unendlich", ich glaube nicht, dass es bedeutet, was du denkst, dass es bedeutet. – abelenky
@abelenky: Suche nach dem bösen '# define'. – aschepler
gut, abelenky, nach oben schauen. #define print cout << –