Форум программистов, компьютерный форум CyberForum.ru

Построчное чтение текстового файла и работа со строками - C++

Восстановить пароль Регистрация
 
Wohoo
0 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 3
05.07.2015, 10:59     Построчное чтение текстового файла и работа со строками #1
Добрый день уважаемые участники. Хотел попросить у Вас помощи, стоит задача-создать функцию, построчно считывающую из текстового файла строки, выбирающую из них определенные подстроки и передающую их на хранение в структуру. Сам текстовый файл имеет следующую структуру: это некое подобие таблицы, в которой каждый "столбец" отделен символом табуляции. Всего таких "столбцов" в каждой строке 13, собственно, из каждой строки нужно взять на хранение содержимое 3,4,5,11,12 столбцов. Не совсем понимаю, как реализовать процесс выборки нужной части строки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2015, 10:59     Построчное чтение текстового файла и работа со строками
Посмотрите здесь:

Построчное чтение из файла C++
построчное чтение из файла C++
C++ Построчное чтение из файла!
C++ построчное чтение из файла
C++ Построчное чтение из текстового файла
Построчное чтение файла C++
Работа со строками текстового файла C++
C++ Построчное чтение из файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
05.07.2015, 11:57     Построчное чтение текстового файла и работа со строками #2
Токенизируете строку, ненужные токены игнорируете.

Пример: Распарсить файл с номерами телефонов и именами абонентов
Wohoo
0 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 3
07.07.2015, 19:02  [ТС]     Построчное чтение текстового файла и работа со строками #3
Спасибо, правда попробовал сделать иначе: но начиная с третьей строки выборка начинает "плыть". В чем может быть проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include "windows.h"
#include <iomanip>
#include <string>
#include <fstream>
#include <signal.h>
#include <locale.h>
#include <conio.h>
using namespace std;
 
struct empl_t
{
string starttime;
string endtime;
string stheme;
string sdevice;
string semployeename;
~empl_t(){}
friend std::ostream& operator<<(std::ostream &os, const empl_t& t);
};
 
std::ostream& operator<<(std::ostream &os, const empl_t& t)
{
os<<t.starttime<<" "<<t.endtime<<" "<<t.stheme<<" "<<t.sdevice<<" "<<t.semployeename<<std::endl;
return os;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, ".1251");
int line_now = 0, row_now = 1;
empl_t *obj = new empl_t[250]; //массив объектов, его и заполняем
 
std::ifstream ifile("proba.txt");//открываем файл
std::string token;
 
while (std::getline(ifile, token, ' ')){
if(line_now > 0){
switch (row_now % 13){
case 2:
obj[line_now - 1].starttime = token;
break;
case 3:
obj[line_now - 1].endtime = token;
break;
case 4:
obj[line_now - 1].stheme = token;
break;
case 10:
obj[line_now - 1].sdevice = token;
break;
case 11:
obj[line_now - 1].semployeename = token;
break;
}
}
if(row_now == 13){
line_now++;
row_now = 0;
}
row_now++;
token = "";
}
for(int i = 0; i <= line_now; ++i){
std::cout<<obj[i];
}
delete [] obj;
system("pause");
return 0;
}
Yandex
Объявления
07.07.2015, 19:02     Построчное чтение текстового файла и работа со строками
Ответ Создать тему
Опции темы

Текущее время: 01:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru