2014-08-31 3 views
-3

Как указано в моем заголовке, Мне нужно прочитать информацию в текстовом файле (C++). Я видел много примеров с участием текстового файла, организованным в виде списка чисел или строк, но в моем случае, мне нужно, чтобы извлечь информацию в файл (example.txt), организованный следующим образом:Прочитайте определенную информацию в текстовом файле

// This is the begin of the text file: 
Here_the_coordinates_are_going_to_be_listed 
Start 
x y z 
0 0 0 
1 0 0 
1 1 0 
0 1 0 
End 

И я бы в идеале прочитать и хранить в «станд :: вектор» информации, содержащейся между «Start» и «End», что матрица представляет собой N х 3 вектор:

matrix[i][j] = 0 0 0 
       1 0 0 
       1 1 0 
       0 1 0 

Я дал взглянуть на учебники и все, что я получил до настоящего времени:

std::array<std::array<int , 5>, 7> matrix; 

    std::ifstream file("../test/matrix.txt"); 

    for (unsigned int i = 0; i < 7; i++) 
    { 
    for (unsigned int j = 0; j < 5; j++) { 
     file >> matrix[i][j]; 
    } 

, который позволяет мне читать файл, в котором записаны только цифры.

Большое спасибо,

Dario

+0

Это все, что у вас есть? –

+0

Нет, я могу читать и хранить матрицу, если файл будет прост, но в этом случае я не знаю, как заполнить матрицу из строки 5 текстового файла. – dario

ответ

0

пойти посмотреть здесь: http://www.cplusplus.com/doc/tutorial/files/ о том, как чтение/запись к файлам, то вы можете пройти через файл и искать первый соответствующего символа (или последний irelvant характер, как г в данном случае), а затем просто перебрать все соответствующие символы и хранить их в 2 одномерный массив (может быть динамическим тоже, если вы не знаете длину вашего списка)

EDIT:

Итак, вот пример из этого веб-сайта о том, как читать текстовый файл из указанной выше ссылки (которую я обновил, я очень сожалею об этом). Итак, в основном идея такова, как вы видите ниже, вы открываете файл и то вы просто прокручиваете каждую отдельную строку здесь (я думаю, вы также можете использовать getchar для символов, что, вероятно, лучше для вас, но я не слишком уверен, как это работает, вам просто придется обходиться с этим немного, я уверен, что вы его получите :)) Итак, здесь строка просто сохраняется в строке, а затем печатается с использованием cout, но вы можете манипулировать строкой дальше, чтобы найти свои данные, я надеюсь, что это поможет! Не стесняйтесь спрашивать, если я недостаточно ясен

// reading a text file 
#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() 
{ 
    string line; 
    ifstream myfile ("example.txt"); 
    if (myfile.is_open()) 
    { 
     while (getline (myfile,line)) 
     { 
      cout << line << '\n'; 
     } 
     myfile.close(); 
    } 

    else cout << "Unable to open file"; 

    return 0; 
} 
+0

Большое спасибо за ответ, конечно, это будет динамично. В настоящее время, к сожалению, этот урок не помогает мне. Конечно, из-за моих немногих навыков, но я даже не нахожу ту часть, которая мне должна помочь. Не могли бы вы быть более конкретными? – dario

+0

Мне так жаль !! Я дал вам неправильную ссылку на несчастный случай! Полностью моя вина! но я обновил ссылку и ответ, надеюсь, теперь это помогает! Просто не стесняйтесь спрашивать снова, мне так жаль! – jundl77

+0

Это нормально jundl, у меня также есть моя ответственность, потому что мой вопрос не ясен. Кстати, я был бы очень признателен, если бы вы помогли мне немного больше. На самом деле моя проблема прямо там ... где вы говорите, что мне нужно возиться. Мне удалось прочитать строки, которые я хочу с самого начала (один с xyz и один с End в моем .txt-файле), но я застрял там, потому что я не нашел способ сохранить номер строки, поэтому Я не могу читать и хранить мои координаты в матрице. BR PS: Я прочитал учебник. PS2: Я могу опубликовать свою программу, если это может помочь – dario

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