parent
1fb6481f2b
commit
ce4997317a
@ -1,4 +1,12 @@
|
|||||||
import std;
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <string_view>
|
||||||
|
#include <fstream>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <iostream>
|
||||||
|
#include <numeric>
|
||||||
|
#include <execution>
|
||||||
|
#include <format>
|
||||||
|
|
||||||
const std::vector<std::wstring_view> BAD_WORDS = {
|
const std::vector<std::wstring_view> BAD_WORDS = {
|
||||||
L"recovery",
|
L"recovery",
|
||||||
@ -38,7 +46,6 @@ const std::vector<std::wstring_view> BAD_WORDS = {
|
|||||||
L"funds",
|
L"funds",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct AnalysisResult {
|
struct AnalysisResult {
|
||||||
std::size_t totalWordCount = 0;
|
std::size_t totalWordCount = 0;
|
||||||
std::size_t totalCapitalizedCount = 0;
|
std::size_t totalCapitalizedCount = 0;
|
||||||
@ -64,6 +71,16 @@ struct AnalysisResult {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Overloaded operator<< for AnalysisResult
|
||||||
|
std::ostream& operator<<(std::ostream& os, const AnalysisResult& result) {
|
||||||
|
os << "Word Count: " << result.totalWordCount << "\n"
|
||||||
|
<< "Capitalized Count: " << result.totalCapitalizedCount << "\n"
|
||||||
|
<< "Sentence Count: " << result.totalSentenceCount << "\n"
|
||||||
|
<< "Number Count: " << result.totalNumberCount << "\n"
|
||||||
|
<< "Forbidden Count: " << result.totalForbiddenCount;
|
||||||
|
return os;
|
||||||
|
}
|
||||||
|
|
||||||
void check_word(const std::wstring &word, std::size_t &forbiddenCount) {
|
void check_word(const std::wstring &word, std::size_t &forbiddenCount) {
|
||||||
if (std::find(BAD_WORDS.begin(), BAD_WORDS.end(), word) != BAD_WORDS.end()) {
|
if (std::find(BAD_WORDS.begin(), BAD_WORDS.end(), word) != BAD_WORDS.end()) {
|
||||||
forbiddenCount++;
|
forbiddenCount++;
|
||||||
@ -73,9 +90,9 @@ void check_word(const std::wstring &word, std::size_t &forbiddenCount) {
|
|||||||
AnalysisResult parseFile(const std::string_view &filename) {
|
AnalysisResult parseFile(const std::string_view &filename) {
|
||||||
std::wifstream file;
|
std::wifstream file;
|
||||||
|
|
||||||
file.open(filename);
|
file.open(std::string(filename)); // Modified line
|
||||||
if (!file.is_open()) {
|
if (!file.is_open()) {
|
||||||
std::println("File doesn't exist: {}", filename);
|
std::cout << "File doesn't exist: " << filename << std::endl;
|
||||||
return { };
|
return { };
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +144,7 @@ AnalysisResult parseFile(const std::string_view &filename) {
|
|||||||
|
|
||||||
int main(const int argc, char *argv[]) {
|
int main(const int argc, char *argv[]) {
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
std::println("Usage: {} <file1> <file2> ... <fileN>", argv[0]);
|
std::cout << "Usage: " << argv[0] << " <file1> <file2> ... <fileN>" << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,6 +152,6 @@ int main(const int argc, char *argv[]) {
|
|||||||
parseFile
|
parseFile
|
||||||
);
|
);
|
||||||
|
|
||||||
std::println("{}", std::string(result));
|
std::cout << result << std::endl; // This will now work
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user