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

Как правильно прочитать данные? - C++

Восстановить пароль Регистрация
 
yesarm5
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 6
05.03.2013, 16:04     Как правильно прочитать данные? #1
Как правильно прочитать данные?
"ER-200" 06:43 10:40
"Red Arrow" 23:55 07:55
"Express" 23:59 08:00
"Slow Train 1" 10:00 09:59
"Slow Train 2" 10:00 10:00

Строчки отдельно чтобы при выводе написать не только одно слово, а название целиком?

Добавлено через 8 минут
Строчки отдельно чтобы при выводе написать не только одно слово, а название целиком
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 16:11     Как правильно прочитать данные? #2
Уточните задание.
Эти строчки будут вводиться с клавиатуры, а потом их необходимо вывести ???
yesarm5
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 6
05.03.2013, 16:54  [ТС]     Как правильно прочитать данные? #3
Дан файл input.txt внутри него:
3
"ER-200" 06:43 10:40
"Red Arrow" 23:55 07:55
"Express" 23:59 08:00 (это только один из возможных вариантов. В кавычках названия поездов)

Я попытался прочитать названия просто стрингом, но в оутпут потом выводит только одно слово, а не название полностью (например инпут: "Red Arrow", оутпут "Red").
Мой вопрос: как сделать так чтобы в оутпут можно было выводить название целиком?
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 17:20     Как правильно прочитать данные? #4
приведите участок кода где вы выбираете из файла и пытаетесь вывести на экран
yesarm5
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 6
05.03.2013, 17:29  [ТС]     Как правильно прочитать данные? #5
Чтение
C++
1
2
3
4
5
6
7
8
9
10
    string trainNames[100];
    int n, h1, m1, h2, m2, time1, time2, time, minTime = 1440, times[100], index = 0;
    
    char a, b;
    
    cin >> n;
    
    for (int i = 0; i < n; i++)
    {
        cin >> trainNames[i] >> h1 >> a >> m1 >> h2 >> b >> m2;
вывод

cout << "The fastest train is " << trainNames[index] << "." << endl;
cout << "It's speed is " << speed * 60 / 1000<< " " << "km / h, approximately." << endl;
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 17:31     Как правильно прочитать данные? #6
Попробуйте так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    const int buffer=256;
    char *a=new char[buffer];
 
    while(cin.getline(a,buffer))
    {
 
    cout<<"Display -"<<a<<endl;
 
    }
 
    delete []a;
 
return 0;
}
yesarm5
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 6
05.03.2013, 17:35  [ТС]     Как правильно прочитать данные? #7
Мне нужно не просто прочитать и вывести на экран, а где-то это название хранить для последующей сортировки названий по времени указанном слева от них
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 17:36     Как правильно прочитать данные? #8
Когда вы читаете
C++
1
cin>>n
он читает до первого пробела, перевода строки и т.д., он понимает что строка окончена, для чтения строки с пробелами используйте
C++
1
cin.getline()
yesarm5
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 6
05.03.2013, 17:43  [ТС]     Как правильно прочитать данные? #9
А если мне нужно прочитать только названия, а времена отдельно?
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 18:00     Как правильно прочитать данные? #10
Мне нужно не просто прочитать и вывести на экран, а где-то это название хранить для последующей сортировки названий по времени указанном слева от них
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
#include <iostream>
#include <string>
#include <list>
 
using namespace std;
int main()
{
    list<string> l;
 
    const int buffer=256;
    char *a=new char[buffer];
 
    //читаем
    while(cin.getline(a,buffer))
    {
        if(*a==' ' || *a=='\0') break; // выход из чтения если введен пробел или символ конца строки
    cout<<"Display -"<<a<<endl;
    l.push_back(a);
 
    }
    //просматриваем список можно посортировать l.sort();
    for(list<string>::iterator i=l.begin();i!=l.end();++i)
            cout<<*i<<endl;
 
    delete []a;
 
 
return 0;
}
А если мне нужно прочитать только названия, а времена отдельно?
После того как прочиталась строка
C++
1
2
 while(cin.getline(a,buffer))
    {
ее нужно проанализировать и разбить на 2 строки, а потом загнать в двумерный массив или подходящий контейнер
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 18:17     Как правильно прочитать данные?
Еще ссылки по теме:

C++ Прочитать информацию из файла и рассортировать как структуру, где хранятся данные про каждую книгу
Как прочитать данные pdf C++
C++ Как убрать возможность прочитать вшитые в исполняемый файл текстовые данные

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

Или воспользуйтесь поиском по форуму:
yesarm5
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 6
05.03.2013, 18:17  [ТС]     Как правильно прочитать данные? #11
Огромное спасибо
Yandex
Объявления
05.03.2013, 18:17     Как правильно прочитать данные?
Ответ Создать тему
Опции темы

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