2015-11-18 3 views
0

У меня есть этот журнал вызовов, состоящий из времени суток и продолжительности данных в файле:Импорт раз из текстового файла в C++

Mo 12:30 16 Ту 7:15 10 Мы 9:10 20 Th 15:34 6 Fr 13:12 8

Я хочу хранить эти данные в переменных так, но у меня возникают проблемы из-за двоеточий.

#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main() 
{ 
ifstream inputfile; 
string day; 
double time; 
int hours; 
string semicolon; 
int minutes; 
int timeSpent; 

inputfile.open("Data.txt"); 
inputfile >> day; 
cout << day << endl; 
inputfile >> hours; 
cout << hours << endl; 
inputfile >> semicolon; 
cout << semicolon << endl; 
inputfile >> minutes; 
cout << minutes << endl; 
inputfile >> timeSpent; 
cout << timeSpent << endl; 



return 0;} 
+0

Лечить точкой с запятой [как символ] (http://cpp.sh/8kxa) не строку. – crayzeewulf

+0

Спасибо вам большое! – Y3DII

ответ

0

C++ 11 имеет get_time и put_time для этого, с небольшой подстройкой вашего формата дата (по крайней мере три письма в течение нескольких дней, часов и минут должны иметь ведущие нули, если менее 10), это так легко, как писание:

#include <iostream> 
#include <iomanip> 

int main() 
{ 
    std::tm t; 
    int duration; 
    while (std::cin >> std::get_time(&t, "%a %R") >> duration) 
    std::cout << std::put_time(&t, "%a %R") << ' ' << duration << '\n'; 
} 

Ваш вклад будет выглядеть следующим образом:

Mon 12:30 16 Tue 07:15 10 Wed 09:10 20 Thu 15:34 6 Fri 13:12 8 
Смежные вопросы