Переполнение при преобразовании из «long long unsigned int» [закрыто]C++

Программы на C++. Форум разработчиков
Гость
Переполнение при преобразовании из «long long unsigned int» [закрыто]

Сообщение Гость »



Изображение
переполнение при преобразовании из 'long long unsigned я заметил эту ошибку
Упражнение такое:

Код: Выделить всё

/*5 (alternative). Given two files of integers, previously ordered ascending, make a
program that saves the contents of both ordered files in a third file descending*/

#include 
#include 
#include 
using namespace std;
int main(){

FILE *f1;
FILE *f2;
int x1,x2,x3;
int cant_elementos_1;
int cant_elementos_2;

f1=fopen("ejercicio5.1","wb");
int t[]={-5,-3,-1,0,2,4,10,12};
fwrite(t, sizeof(int),8,f1);
fclose(f1);

f2=fopen("ejercicio5.2","wb");
int q[]={-10,1,5,6};
fwrite(q, sizeof(int),4,f2);
fclose(f2);

FILE *f3;

f1=fopen("ejercicio5.1","rb");
f2=fopen("ejercicio5.2","rb");
f3=fopen("ejercicio5.3", "wb");

fseek(f1, 0, SEEK_END);
fseek(f2, 0, SEEK_END);
cant_elementos_1=ftell(f1)/sizeof(int);
cant_elementos_2=ftell(f2)/sizeof(int);
fseek(f1, (-1)*sizeof(int), SEEK_END);
fseek(f2, (-1)*sizeof(int), SEEK_END);

while(cant_elementos_1 && cant_elementos_2){                    //ftell da 0?

fread(&x1,sizeof(int),1,f1);
fread(&x2,sizeof(int),1,f2);

if (x1 > x2){
fwrite(&x1,sizeof(int),1,f3);
fseek(f1,(-2)*sizeof(int),SEEK_CUR);
fseek(f2,(-1)*sizeof(int),SEEK_CUR);
cant_elementos_1--;
}
else{
fwrite(&x2,sizeof(int),1,f3);
fseek(f2,(-2)*sizeof(int),SEEK_CUR);
fseek(f1,(-1)*sizeof(int),SEEK_CUR);
cant_elementos_2--;
}
}

if(cant_elementos_1){
fwrite(&x1,sizeof(int),1,f3);
cant_elementos_1--;
fseek(f1,(-1)*sizeof(int),SEEK_CUR);
while(cant_elementos_1){
fread(&x1,sizeof(int),1,f1);
fwrite(&x1,sizeof(int),1,f3);
fseek(f1,(-2)*sizeof(int),SEEK_CUR);
cant_elementos_1--;
}
}

if(cant_elementos_2){
fwrite(&x2,sizeof(int),1,f3);
cant_elementos_2--;
fseek(f2,(-1)*sizeof(int),SEEK_CUR);
while(cant_elementos_2){
fread(&x2,sizeof(int),1,f2);
fwrite(&x2,sizeof(int),1,f3);
fseek(f2,(-2)*sizeof(int),SEEK_CUR);
cant_elementos_2--;
}

}

fclose(f1);
fclose(f2);
fclose(f3);

//*******corroboramos*********

f3= fopen("ejercicio5.3","rb");
while (fread(&x3,sizeof(int),1,f3)){
cout 

Источник: [url]https://stackoverflow.com/questions/78157671/overflow-in-conversion-from-long-long-unsigned-int[/url]

Вернуться в «C++»