Я пытаюсь вытащить из файла данных дату, состоящую из ints, а также значение char и float, которые вместе.C++ istream, читающий несколько типов данных в одной строке
формат Dat файл выглядит следующим образом:
201205171200 M29.65
201207041900 F30.3
И так далее.
Я борюсь с разделением этих значений. Вот то, что я до сих пор:
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
int inCount = 0; //This variable will be used to keep track of what record is being read.
vector<int> dates;
vector<float> temps;
// Open and retrieve data from text.
ifstream inFile;
inFile.open("biodata.dat");//Opening Biodata file to begin going through data
if(inFile)
{
char tempType;
while(!inFile.eof())
{
if (inFile.eof()) break;
inFile >> dates[inCount];
cout << dates[inCount];
inFile >> tempType;
inFile >> temps[inCount];
if(tempType == 'F'){
temps[inCount] = (temps[inCount] - static_cast<float>(32)) * (5.0/9.0);
}
inCount++;
}
} else {
cout << "The file did not load";
return 0;
}
}
мне нужно отделить первую часть в качестве временной метки в качестве междунар. Символ 'M' или 'F' должен быть его собственным символом, а последний бит должен быть плавающим.
Я понятия не имею, как вытащить их как свои собственные переменные.
ваша линия 'вектор даты;.' должен быть 'вектор даты,', чтобы убедиться, что его достаточно большим, чтобы держать эти цифры –
RichardPlunkett
Кроме того, вы не кажется, м. в любом месте вашего вектора. Вы можете читать локальные переменные, а затем использовать 'push_back()' для добавления значений в свои векторы, что бы решить это. – RichardPlunkett