У меня есть файл с именем file.txt, и он имеет такую структуру:
owner_name : first_last_name filesize : 1000 is_legal_file : yes date : someDate . . .
Я хочу получить значение в fileSize. (1000 в этом примере.)
Как мне получить эту информацию?
Читайте файл построчно до второй строки, затем strtok () вторую строку :, и у вас будет две строки: filesize и 1000, тогда вы можете используйте atoi () .
:
filesize
1000
sstream
#include <iostream> #include <sstream> #include <string> int main() { using namespace std; for (string line; getline(cin, line); ) { istringstream ss(line); string name; ss >> name; // assume spaces between all elements in the line if (name == "filesize") { string sep; int filesize = -1; ss >> sep >> filesize; if (sep == ":" && ss) { cout << filesize << endl; break; } } } }
Похожие: Разделить строку в C ++?
Другой простой способ кроме strtok - сделать while (infile >> myString).Просто выясните номер нужного вам значения и выведите его.
while (infile >> myString)
std::string myString; ifstream infile("yourFile.txt"); while (infile >> myString) { //Do an if-statement to only select the value you want. //Leaving this for you since I think it's homework }