lfStream kullanarak. Benim kodunda olduğu gibiC okumak ++ ve düzenleme jpg dosyası basit bir görüntü şifreleme proje üzerinde çalışmaya çalışıyorum ve ben sormak istediğim birkaç soru var
Bir karakterin içine
ifstream
gelen her veri byte saklamak mı?Her bir byte yazdırılan garip bir semboldür (bu doğrudur), ancak neden 10 (bir
int
) eklendiğinde, yazdırıldığında her zaman bir sayı sonuçlanır?int main() { vector <char> data; // Stores each byte from image.jpg ifstream fileIn("image.jpg", ios::binary); int i = 0; // Used for accessing each item in data vector while (fileIn){ //Add each character from the image file into the vector data.push_back(fileIn.get()); cout << "Original: " << data[i] << endl; // Print each character from image.jgp cout << "Result after adding: " << data[i] + 10 << endl; // This line is where I need help with i++; system("pause"); } fileIn.close(); system("pause"); return 0; }
Çıktı: Gördüğünüz gibi
Original: å
Result after adding: -112
Original: Æ
Result after adding: -100
Original:
Result after adding: 12
, 10 ekleyerek her zaman bir numara ile sonuçlanır. Bu değerleri daha sonra nasıl değiştirebilirim, böylece daha sonra değiştirebilir miyim?
Yardımlarınız için teşekkür ederiz. Eğer (sizin durumunuzda gibi char
) den küçük int
bir türde bir değerle (ekleme gibi) bir aritmetik işlem yaptığınızda
, aslında gerçek JPEG resim verilerine şey yapmıyoruz? Sadece giriş dosyanız bir JPEG görüntü dosyası mıdır? –