ジャンクファイルジェネレーターの開発を始めているのですが、なぜか大量に使うとファイルが完成するまでビープ音が鳴り続けてしまい、asciiテーブルのどこかに\aという文字があるのか、オーバーフローしているのかと思いますとなり、エラー ビープが鳴ります。なぜこれが私に向かって叫んでいるのか説明したい人はいますか?
#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;
}
この時点で、最終的に文字は問題なく出力されているように見えますが、テキスト ファイルには文字の 1/4 しか書き込まれていません。理由を知っている人はいますか?