Я следую за книгой OOP в C ++ Брюса Экеля. Я на второй главе упражнения. Упомянутое упражнение задает следующее
«Создать программу, которая подсчитывает вхождение определенного слова в файл» *
Существует несколько способов достижения этой цели, например создание вспомогательной функции, которая читает содержимое файла в строку. Я сделал это с помощью метода l oop и строки find . Тем не менее, предложенные решения из книги дали довольно элегантное решение, которое я не понимаю. Полное раскрытие: я не зачислен ни в один класс. Я делаю это для моего собственного понимания:)
/**
Create a program that counts the occurrence of a particular word in a file
(use the string class’ operator ‘==’ to find the word).
**/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
int counter = 0;
string key;
cout << "Please enter the word for search: ";
cin >> key;
ifstream inputFile("04.txt");
string buf;
while (inputFile >> buf) {
if (key == buf)
++counter;
}
cout << "Word " << key << " occurs " << counter << " time(s)." << endl;
return 0;
}
Чего я не понимаю, так это пока l oop.
while (inputFile >> buf) {
if (key == buf)
++counter;
}
Сначала программа запрашивает у пользователя ввод для поиска, затем открывает txt-файл, используя fstream, а затем создает строку с именем buf. Пока все хорошо, но я вообще не понимаю пока (inputFile >> buf). Из документации я понял, что это либо перегруженный оператор, либо , этот оператор наследуется от istream . Тем не менее, я просто догадываюсь сейчас.
Может кто-нибудь объяснить, что происходит в то время, пока я oop? Что значит while (inputFile >> buf)? C ++ новичок здесь, пожалуйста, будьте добры.