Я новичок в программировании на C++, и я сделал домашнее задание для чтения файла. Я изучаю C++ с этого сайта cpp-tutorial: Basic-file-io.Прочитайте файл на C++ с определенной строки, а затем сохраните его в Vectors/Array
У меня есть файл, содержимое которого выглядит следующим образом:
Input: /path/to/the/file/
Information :xxx
Type of File: Txt file
Extra Information Value = 4
Development = 55
NId CommId
1 0
3 0
8 7
. .
And so on...
Этот файл имеет около 10000 Nodes
и их соответствующую CommID
. В этом файле Node and CommId
разделены TAb space
. Я читаю этот файл в качестве входных данных, используя следующий код:
ifstream commFile("CommTest.txt");
if (!commFile)
{
// Print an error and exit
cerr << "Uh oh, CommunityTest File could not be opened for reading!" << endl;
exit(1);
}
while(commFile)
{
// read communityFile from the 6th Line
string strLine;
getline(commFile, strLine);
cout << strLine << endl;
}
У меня есть два вопроса:
- Я хочу, чтобы начать чтение из строки 7 1 0 т.е. и так далее.
- Как я могу начать читать его из строки 7?
Я проверил много вопросов и наткнулся, что это не возможно, чтобы перейти к номеру строки, если строки в текстовых файлах имеют разную длину.
Интересно, как использовать seekg, в котором мне нужно подсчитать биты, прежде чем я могу достигнуть линии 7.
Please let me know, how to do it?
Я хочу, чтобы получить узлы и CommId в двух отдельных Целые. Как только у меня есть Node в Integer, я хочу выполнить поиск в Neighbor Nodes этого узла из графического файла (этот файл также предоставляется как вход, и он имеет информацию о краях). После получения соседей этого узла я хочу сохранить собранные соседи и их CommId (commId каждого узла доступен из вышеупомянутого файла). Я хочу сохранить их как пару в массиве/векторе.
Например:
После прочтения 1 0 из этого файла. Я возьму Узел 1 и найду Соседей Узел 1 из графического файла. Для каждого Neighbors узла Node 1 я хочу сохранить информацию в виде пары. Например, если Узел 1 имеет два узла соседей. Узел 63 т.е., и узел 55. Если узел 63 принадлежат commId 100 и узел 55 принадлежит к CommId 101, пара должно быть:
[(63100), (55101) ..] и так далее.
Учебная ссылка, форум STackOverflow предложил мне использовать Vectors, Map, STructs for Graphs. Я не использовал Vector/Maps, Structs в любое время в моей жизни. Я знаю, как я использовал его раньше.
Просьба предложить, какой был бы лучший способ.
Заранее спасибо. Любая помощь будет принята с благодарностью.
Вы помещаете счетчик в цикле и пропустить обработку линии читать до тех пор, счетчик достигает 7? –