Senast redigerat
Visa signatur
Denon AVR-1801 | Dali Blue 5005 | Turtle Beach Audio Advantage Micro II
Hej, jag försöker läsa en BMP fil med fstream. det går bra med vissa bmp filer and inte. (Alla är 24bit Windows) WindowsBMPHeader
Så här ser min kod ut.
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream inFil;
string filnamn;
cout << "Enter filname" << endl;
cin >> filnamn;
//Open file and read it byte by byte
inFil.open(filnamn.c_str()); //Open file
if(!inFil.is_open()) //is it a valid file?
{
cout << "Invalid filename" << endl;
return(1);
}
inFil.seekg(0, ios::end); //Go to end of file
size_t fileSize = inFil.tellg(); //Get size of file from the current position
inFil.seekg(0, ios::beg); //Go to start of file.
vector<char> Bytes(fileSize, 0); //variable that stores the BMP in bytes
inFil.read(&Bytes[0], fileSize); //Store the BMP
if(inFil.fail()){cout << "Something went wrong!" << endl; return(1);}
inFil.close(); //Close the file.
Sleep(10000);
}
Dessa två fungerar:
http://www.deadleaves.nu/DUMP/Public/test1.bmp
http://www.deadleaves.nu/DUMP/Public/test2.bmp
Medans Dessa två inte gör det:
http://www.deadleaves.nu/DUMP/Public/test3.bmp
http://www.deadleaves.nu/DUMP/Public/test4.bmp
Den ger mig inFil.fail() på Test3-4.bmp medans test1-2 fungerar utmärkt.
EDIT: Hittat felet. En moderator kan stänga tråden. Jag ber om ursäkt.
Denon AVR-1801 | Dali Blue 5005 | Turtle Beach Audio Advantage Micro II
Ursprungligen inskrivet av Lisianthus
EDIT: Hittat felet. En moderator kan stänga tråden. Jag ber om ursäkt.
Att låsa verkar onödigt, men om du skriver ut lösningen kan kanske någon annan ha glädje av den i framtiden.
Problemet låg i en helt annan del av programmet. Ett väldigt litet och slarvigt mistag med att jag blandade ihop hexa och decimal när jag skrev min nya fil.
Denon AVR-1801 | Dali Blue 5005 | Turtle Beach Audio Advantage Micro II
Copyright © 1999–2023 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.