Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
1

Чтение текстового файла и его данных в разные переменные

04.09.2014, 08:59. Просмотров 1813. Ответов 35
Метки нет (Все метки)

не работал еще с файлами в плюсах, только в чистом си... никак не соображу как считать данные из файла, вот например такой файл

Кликните здесь для просмотра всего текста
town=Москва
population=11500000
latitude=55,45,07
longitude=37,36,56
transport=метро,автобусы,трамваи

town=Санкт-Петербург
population=4880000
latitude=59,53,39
longitude=30,15,51
transport=метро,трамваи,тролейбусы

town=Пенза
population=517311
latitude=53,11,39
longitude=45,00,00
transport=автобусы,тролейбусы

соответственно надо считывать только параметры и те что через запятую в разные переменные

ну вот как бы начало, а что дальше хз...
C++
1
2
3
4
5
bool Input()
{
    ifstream stream(filename);
    if (stream.bad()) return false;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2014, 08:59
Ответы с готовыми решениями:

Чтение текстового файла. Парсинг его данных. Создание исключений для данных. Запись свойств объектов в файл
Проблема такая. Есть файл data.txt. В нем например какие-то данные. Landon Donovan, 150, A...

Чтение текста из файла и запись его частей в переменные
Здравствуйте, задача такая - у меня есть текстовой документ, в который записаны фраза и ответ на...

Чтение текста из файла и запись его частей в переменные
Всем привет. Столкнулся с проблемой переноса ключей расшифровки. Одна программа генерирует ключи,...

Чтение из файла и занос данных в переменные
Здравствуйте! При чтении из файла числовых данных столкнулся с проблемой, что значения не...

35
653 / 574 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
04.09.2014, 09:14 2
C++
1
2
3
4
5
6
bool Input()
{
    ifstream stream;
    stream.open(filename);
    if (!stream.is_open()) return false;
}
вот для начала)
а остальное парсить
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.09.2014, 09:15  [ТС] 3
Цитата Сообщение от aLarman Посмотреть сообщение
вот для начала)
у меня тоже было правильно в этом плане, я уверен...
Цитата Сообщение от aLarman Посмотреть сообщение
а остальное парсить
вот это то меня и интересует...
0
653 / 574 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
04.09.2014, 09:16 4
читайте построчно, и разбирайте слова
0
34 / 34 / 8
Регистрация: 06.04.2014
Сообщений: 189
04.09.2014, 09:35 5
std::getline в помощь
0
Каратель
Эксперт С++
6598 / 4019 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
04.09.2014, 09:49 6
Цитата Сообщение от GetHelp Посмотреть сообщение
у меня тоже было правильно в этом плане, я уверен...
да? и что вернет функция если условие в if будет ложным?
Цитата Сообщение от GetHelp Посмотреть сообщение
C++
1
2
3
4
5
bool Input()
{
    ifstream stream(filename);
    if (stream.bad()) return false;
}
0
653 / 574 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
04.09.2014, 09:50 7
UB в основном приводит к падению
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.09.2014, 10:15  [ТС] 8
Цитата Сообщение от aLarman Посмотреть сообщение
читайте построчно, и разбирайте слова
как???
Цитата Сообщение от Jupiter Посмотреть сообщение
да? и что вернет функция если условие в if будет ложным?
да пофиг условие можно любое поставить, я имел ввиду что не надо делать лишнюю строку с открытием, когда есть метод открытия в конструкторе

короче как сделать этот самый парсинг??? не очень хочется связываться с регулярными выражениями из за такой мелочи... может можно как то просто сделать?
0
SatanaXIII
04.09.2014, 10:16
  #9

Не по теме:

Цитата Сообщение от aLarman Посмотреть сообщение
к падению
М. Горький: UB

0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.09.2014, 10:16  [ТС] 10
Цитата Сообщение от aLarman Посмотреть сообщение
UB в основном приводит к падению
Цитата Сообщение от SatanaXIII Посмотреть сообщение
М. Горький: UB
че такое UB?
0
Почетный модератор
Эксперт С++
5841 / 2849 / 390
Регистрация: 01.11.2011
Сообщений: 6,900
04.09.2014, 10:19 11
Undefined Behaviour
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.09.2014, 10:20  [ТС] 12
вот смотрите если бы я писал на чистом си я бы написал что то типа
C
1
fscanf("population=%d",&x)
как мне сделать тоже самое в плюсах???
0
Почетный модератор
Эксперт С++
5841 / 2849 / 390
Регистрация: 01.11.2011
Сообщений: 6,900
04.09.2014, 10:21 13
Цитата Сообщение от GetHelp Посмотреть сообщение
как мне сделать тоже самое в плюсах?
C++
1
cout << "population=" << x;
0
3239 / 2047 / 350
Регистрация: 24.11.2012
Сообщений: 4,897
04.09.2014, 10:26 14
SatanaXIII, scanf - это слегка не printf)
0
SatanaXIII
04.09.2014, 10:29
  #15

Не по теме:

0x10, что-то я да. Х)

0
DrOffset
04.09.2014, 10:32
  #16

Не по теме:

Цитата Сообщение от aLarman Посмотреть сообщение
UB в основном приводит к падению
Практика показыает, что нет. К падению приводят только вопиющие случаи, а все остальные, которых в любой программе можно найти достаточно, тихо ждут момента (этот момент у нас называется "генеральский эффект") :)

0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.09.2014, 10:36  [ТС] 17
нет у меня никакого UB тут, лучше подскажите как мне этот чертов файл считать...
0
Каратель
Эксперт С++
6598 / 4019 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
04.09.2014, 11:00 18
Цитата Сообщение от GetHelp Посмотреть сообщение
нет у меня никакого UB тут, лучше подскажите как мне этот чертов файл считать...
тебе уже ответили!
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.09.2014, 11:01  [ТС] 19
Цитата Сообщение от Jupiter Посмотреть сообщение
тебе уже ответили!
Скажите пожалуйста, как мне применить функцию getline? Как мне получить значение из строки?
0
3239 / 2047 / 350
Регистрация: 24.11.2012
Сообщений: 4,897
04.09.2014, 11:09 20
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <cstring>
 
int main() {
    // Допустим, строку уже получили
    const char* population = "population=11500000";
    
    int delim_index = strcspn(population, "=");
    int value = atoi(population + delim_index + 1);
    std::cout << value << std::endl;
}
http://ideone.com/M8LxZV
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2014, 11:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt;...

Создание текстового файла, чтение и вывод его содержимого на экран
Помогите, пожалуйста разобраться. В учебнике нашла пример, программа должна создавать указанный...

Чтение данных с текстового файла
Всем привет. Простите, если спрашиваю очевидное, но я не могу понять, как мне считать переменную с...

Чтение данных из текстового файла
Всем большой привет! Люди помогите с таким вопросом! У меня есть текстовый файл, Мне нужно что бы...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.