Universal File Duplicator
You've got a using namespace std; in your code. Don't do that. (No, really).



gets is dangerous; don't use it. Streams are so much more convenient anyway! For instance, you could write:

std::string sourcefile, targetfile, endung;
std::cout &lt;&lt; "Welcome! You are using UNIVERSAL-DATEI-DUPLIKATOR v1.0\n"
          &lt;&lt; "Filename? (Example: test.txt)\n";
std::cin &gt;&gt; sourcefile;
std::cout &lt;&lt; "New Filename without ending? (Example: filename)\n";
std::cin &gt;&gt; targetfile;
std::cout &lt;&lt; "Ending? (Example: .txt)\n";
std::cin &gt;&gt; endung;

int anzahl;
std::cout &lt;&lt; "How many times do you want to create the file?\n";
std::cin &gt;&gt; anzahl;




Opening the input file only once and resetting the stream to the beginning for each copy may allow the stream to make better use of buffering, reducing the number of seeks required.

Also, streams can be copied directly to streambufs using operator&gt;&gt;.

std::ifstream Quelldatei(sourcefile, std::ios::binary);
for (int i = 0; i &lt; anzahl; ++i) {
    Quelldatei.seekg(0);
    std::ostringstream output_filename(targetfile);
    output_filename &lt;&lt; i &lt;&lt; endung;
    std::ofstream Zieldatei(output_filename, std::ios::binary);
    Quelldatei &gt;&gt; Zieldatei.rdbuf();
    Zieldatei.close();
}
std::cout &lt;&lt; "SUCCESS!" &lt;&lt; std::endl;
system("pause");