Files and Streams
Parse File Lines
File lines can be parsed with std::stringstream after reading them.
Parse File Lines
parse_file_lines.cpp
#include <cstdio>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
int main() {
int minimum = ;
std::string filename = "scores.txt";
std::ofstream setup(filename);
setup << "Ada 91" << std::endl;
setup << "Bjarne 74" << std::endl;
setup << "Grace 88" << std::endl;
setup.close();
std::ifstream input(filename);
std::string line;
int passed = 0;
while (std::getline(input, line)) {
std::stringstream parser(line);
std::string name;
int score = 0;
parser >> name >> score;
if (score >= minimum) {
++passed;
}
}
std::cout << "minimum=" << minimum << std::endl;
std::cout << "passed=" << passed << std::endl;
std::remove(filename.c_str());
return 0;
}
#include <cstdio>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
int main() {
int minimum = ;
std::string filename = "scores.txt";
std::ofstream setup(filename);
setup << "Ada 91" << std::endl;
setup << "Bjarne 74" << std::endl;
setup << "Grace 88" << std::endl;
setup.close();
std::ifstream input(filename);
std::string line;
int passed = 0;
while (std::getline(input, line)) {
std::stringstream parser(line);
std::string name;
int score = 0;
parser >> name >> score;
if (score >= minimum) {
++passed;
}
}
std::cout << "minimum=" << minimum << std::endl;
std::cout << "passed=" << passed << std::endl;
std::remove(filename.c_str());
return 0;
}
#include <cstdio>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
int main() {
int minimum = ;
std::string filename = "scores.txt";
std::ofstream setup(filename);
setup << "Ada 91" << std::endl;
setup << "Bjarne 74" << std::endl;
setup << "Grace 88" << std::endl;
setup.close();
std::ifstream input(filename);
std::string line;
int passed = 0;
while (std::getline(input, line)) {
std::stringstream parser(line);
std::string name;
int score = 0;
parser >> name >> score;
if (score >= minimum) {
++passed;
}
}
std::cout << "minimum=" << minimum << std::endl;
std::cout << "passed=" << passed << std::endl;
std::remove(filename.c_str());
return 0;
}
line parsing
Read a line from a file, then use a string stream to split the line into typed values.