#include<iostream>
#include<fstream>
using namespace std;
int main()
{
fstream file1,file2,file3,file4;
int num1,num2,num,temp=0,a[20];
file1.open("source1.txt",ios::in);
file2.open("source2.txt",ios::in);
file3.open("sample.txt",ios::out|ios::in|ios::trunc);
file4.open("target.txt",ios::out|ios::in|ios::trunc);
if(file1.is_open()&&file2.is_open()&&file3.is_open()&&file4.is_open())
{
while(file1)
{
file1>>num1;
file3<<num1<<'\n';
}
file1.close();
while(file2)
{
file2>>num2;
file3<<num2<<'\n';
}
file2.close();
file3.seekg(0);
int i=0;
while(file3)
{
file3>>num;
a[i]=num;
i++;
}
for(int j=0;j<i-1;j++)
{
if(a[j]<a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
file3.close();
for(int j=0;j<i;j++)
file4<<a[j]<<'\n';
file4.close();
}
else
cerr<<"\nError!";
return 0;
}
source1 und source 2 enthält Ganzzahlen, die in das Ziel kopiert werden müssen, und sie sollten sortiert werden. Ich kann sie nicht mit dem obigen Code sortieren. Außerdem sehe ich, dass die letzte Ganzzahl von Quelle1 und Quelle2 zweimal kopiert wird.Erstellen einer Datei sortierter Ganzzahlen aus zwei anderen Dateien
'file1 >> num1' etc können an der Ausfall Ende der Datei, also Schleife mit 'while (Datei1 >> Nummer1)', usw. Dies verhindert, dass die letzte ganze Zahl dupliziert wird. Als nächstes benötigt Ihre Sortierroutine verschachtelte Schleifen, nicht nur eine einzelne Schleife. Schließlich benötigen Sie nicht das Zwischenprodukt 'file3'. –
@ KenY-N was ist der Unterschied, wenn ich verschachtelte Schleifen verwende? Ich habe versucht, eine einzelne Schleife für ein nicht-Datei-bezogenes Programm zu verwenden, und es hat funktioniert. –
Für grundlegende Sortieralgorithmen wie Einfügesortierung, Blasensortierung usw. benötigen Sie verschachtelte Schleifen. Sie können nicht in einem einzigen Durchgang sortieren. –