2016-09-25 2 views
0

У меня есть файл с сеткой чисел, которую я пытаюсь перебрать. Я знаю размеры сетки, но я не могу найти способ получить доступ к значению в каждом месте. Вот набросок того, что у меня до сих пор в частичной псевдокоде:Доступ к элементу внутри файла из цикла double for?

std::ifstream file(filename); 

for (y = 0; y < height; y++) 
{ 
    string line = file[y]; // wrong 
    for (x = 0; x < width; x++) 
    { 
     int value = line[x] // wrong 
    } 
} 

Какой самый лучший способ для достижения этой цели? Заранее благодарю за любую помощь.

ответ

0

Он должен выглядеть следующим образом:

for (int y = 0; y < height; y++) 
{ 
    string line; 
    getline(file,line); 

    std::istringstream line_stream(line); 

    for (int x = 0; x < width; x++) 
    { 
     int value; 
     line_stream >> value; 
    } 
} 
0

Вы не можете получить доступ потока, как это, последовательное в nature.Using потоков псевдо код может выглядеть следующим образом (не пробовал компилировать, однако это это идея)

#include <iostream>  // std::cout 
#include <fstream>  // std::ifstream 

int main() { 

    std::ifstream ifs ("test.txt", std::ifstream::in); 

#define LINE_SIZE 10  
    char c = ifs.get(); 

    for (int i=0;ifs.good();i++) { 
     // this element is at row :(i/LINE_SIZE) col: i%LINE_SIZE 
     int row=(int)(i/LINE_SIZE); 
     int col=(i%LINE_SIZE); 
    myFunction(row,col,c); 
    c = ifs.get(); 
    } 

    ifs.close(); 

    return 0; 
} 
Смежные вопросы