2015-10-29 3 views
0

Я пытаюсь читать из файла PPM. Я хочу прочитать первое, второе и третье число из каждой строки, в this file, но я не знаю, как читать строки.Чтение файлов PPM Значения RGB C++

Это то, что я до сих пор:

for (int y = 4; y <= HEIGHT; y++) { // i think it has to start on row 4 
    for (int x = 1; x <= WIDTH; x++) { // and x from 1 
     int i = 4; 

     int r = CurrentR(i); 
     int g = CurrentG(i); 
     int b = CurrentB(i); 
     i++; 
    } 
} 

int CurrentR(int I) { 
    return // the first number in row xy 
} 
int CurrentG(int I) { 
    return // the second number in row xy 
} 
int CurrentB(int I) { 
    return // the third number in row xy 
} 
+0

вы хотите конвертировать PPM в BMP? – user463035818

+0

@ tobi303 нет, я хочу сохранить значения RGB файла PPM. –

+0

, и вы хотите сохранить значения RGB в 'img'? Что такое 'img'? – user463035818

ответ

0

Это, как я хотел бы предложить вам сделать это:

struct RGB { 
    int R,B,G; 
} 
std::ifstream& operator>>(std::ifstream &in,RGB& rgb){ 
    in >> rgb.R; 
    in >> rgb.G; 
    in >> rgb.B; 
    return in; 
} 
std::ostream& operator<<(std::ostream &out,RGB& rgb){ 
    out << rgb.R << " "; 
    out << rgb.G << " "; 
    out << rgb.B << std::endl; 
    return out; 
} 


int main(){ 
    std::string filename = "test.txt"; 
    std::ifstream file(filename.c_str()); 
    if(file.is_open()) { 
     std::string line; 
     for (int i=0;i<4;i++) { std::getline(file,line); } 
     RGB rgb; 
     for (int i=0;i<LINES_TO_READ;i++) { 
      file >> rgb; 
      std::cout << rgb; 
     } 
    } 
} 
+0

Спасибо, что помогли мне, но это «прочитайте три числа "мне нужна помощь. Ваш путь может быть лучшим способом, но я очень начинающий, поэтому, если бы вы могли помочь в получении потока ifstream, это было бы лучше, я думаю. Я прочитал ссылку, которую вы разместили, и я не очень понял. –

+0

@MarcusMathiassen Я обновил ответ – user463035818

Смежные вопросы