#include <iostream>
#include <sstream>
#include <string>
int main ()
{
// 1. read each line from the file into a string with std::getline()
// http://w...content-available-to-author-only...s.com/reference/string/string/getline/
// as an wexample, say, a line read from the file is:
std::string line = "x1888.88 14.56 123456789 xxx yyy zzz" ;
// 2. create an input string stream which reads from the line
std::istringstream stm(line) ;
// 3. read the fields from the input string stream
char junk ;
char type ;
float hours ;
double salary ;
long id ;
std::string fname ;
std::string mname ;
std::string lname ;
if( stm >> junk >> type >> hours >> salary >> id >> fname >> mname >> lname )
{
std::cout << "junk (to be thrown away): " << junk << '\n'
<< "type: " << type << '\n'
<< "hours: " << hours << '\n'
<< "salary: " << salary << '\n'
<< "id: " << id << '\n'
<< "fname: " << fname << '\n'
<< "mname: " << mname << '\n'
<< "lname: " << lname << '\n' ;
// ...
}
else
{
// badly formed line
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCmludCBtYWluICgpCnsKICAgIC8vIDEuIHJlYWQgZWFjaCBsaW5lIGZyb20gdGhlIGZpbGUgaW50byBhIHN0cmluZyB3aXRoIHN0ZDo6Z2V0bGluZSgpCiAgICAvLyBodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5jb20vcmVmZXJlbmNlL3N0cmluZy9zdHJpbmcvZ2V0bGluZS8KCiAgICAvLyBhcyBhbiB3ZXhhbXBsZSwgc2F5LCBhIGxpbmUgcmVhZCBmcm9tIHRoZSBmaWxlIGlzOgogICAgc3RkOjpzdHJpbmcgbGluZSA9ICJ4MTg4OC44OCAxNC41NiAxMjM0NTY3ODkgeHh4IHl5eSB6enoiIDsKCiAgICAvLyAyLiBjcmVhdGUgYW4gaW5wdXQgc3RyaW5nIHN0cmVhbSB3aGljaCByZWFkcyBmcm9tIHRoZSBsaW5lCiAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gc3RtKGxpbmUpIDsKCiAgICAvLyAzLiByZWFkIHRoZSBmaWVsZHMgZnJvbSB0aGUgaW5wdXQgc3RyaW5nIHN0cmVhbQogICAgY2hhciBqdW5rIDsKICAgIGNoYXIgdHlwZSA7CiAgICBmbG9hdCBob3VycyA7CiAgICBkb3VibGUgc2FsYXJ5IDsKICAgIGxvbmcgaWQgOwogICAgc3RkOjpzdHJpbmcgZm5hbWUgOwogICAgc3RkOjpzdHJpbmcgbW5hbWUgOwogICAgc3RkOjpzdHJpbmcgbG5hbWUgOwoKICAgIGlmKCBzdG0gPj4ganVuayA+PiB0eXBlID4+IGhvdXJzID4+IHNhbGFyeSA+PiBpZCA+PiBmbmFtZSA+PiBtbmFtZSA+PiBsbmFtZSApCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJqdW5rICh0byBiZSB0aHJvd24gYXdheSk6ICIgPDwganVuayA8PCAnXG4nCiAgICAgICAgICAgICAgICAgICA8PCAidHlwZTogIiA8PCB0eXBlIDw8ICdcbicKICAgICAgICAgICAgICAgICAgIDw8ICJob3VyczogIiA8PCBob3VycyA8PCAnXG4nCiAgICAgICAgICAgICAgICAgICA8PCAic2FsYXJ5OiAiIDw8IHNhbGFyeSA8PCAnXG4nCiAgICAgICAgICAgICAgICAgICA8PCAiaWQ6ICIgPDwgaWQgPDwgJ1xuJwogICAgICAgICAgICAgICAgICAgPDwgImZuYW1lOiAiIDw8IGZuYW1lIDw8ICdcbicKICAgICAgICAgICAgICAgICAgIDw8ICJtbmFtZTogIiA8PCBtbmFtZSA8PCAnXG4nCiAgICAgICAgICAgICAgICAgICA8PCAibG5hbWU6ICIgPDwgbG5hbWUgPDwgJ1xuJyA7CiAgICAgICAgLy8gLi4uCiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgLy8gYmFkbHkgZm9ybWVkIGxpbmUKICAgIH0KfQo=