Comment lire little endian entiers à partir d'un fichier en C++?

Dire que j'ai un fichier binaire; il contient positive des nombres binaires, mais écrit dans little endian en tant que nombres entiers de 32 bits

Comment puis-je lire ce fichier? J'ai ce droit maintenant.

int main() {
    FILE * fp;
    char buffer[4];
    int num = 0;
    fp=fopen("file.txt","rb");
    while ( fread(&buffer, 1, 4,fp) != 0) {

        //I think buffer should be 32 bit integer I read,
        //how can I let num equal to 32 bit little endian integer?
    }
    //Say I just want to get the sum of all these binary little endian integers,
    //is there an another way to make read and get sum faster since it's all 
    //binary, shouldnt it be faster if i just add in binary? not sure..
    return 0;
}
double possible de Byte swap lors de la copie
la question couvre la même classe de problème, mais est différent, je pense. Un débutant va trouver le lié de questions & réponses difficiles à suivre.
Si vous utilisez un 80x86 machine - tous d'entre eux utilise little-endian - vous n'aurez pas besoin de faire des ajustements pour les nombres.
Plusieurs réponses sont en supposant que le lecteur n'est PAS en little endian. L'OP n'a pas fait mention de cela; seulement que le écrivain utilisé LE format de sortie. Le code doit être portable pour faire face à un CHIER ou des lecteurs (dont certains sont, heureusement).

OriginalL'auteur user1713700 | 2012-10-21