| 221 | } |
| 222 | |
| 223 | void printJSON(const AnalysisResult& r) { |
| 224 | std::cout << "{\n"; |
| 225 | std::cout << " \"total_words\": " << r.totalWords << ",\n"; |
| 226 | std::cout << " \"unique_words\": " << r.uniqueWords << ",\n"; |
| 227 | std::cout << " \"total_chars\": " << r.totalChars << ",\n"; |
| 228 | std::cout << " \"chars_no_spaces\": " << r.totalCharsNoSpaces << ",\n"; |
| 229 | std::cout << " \"sentences\": " << r.sentences << ",\n"; |
| 230 | std::cout << " \"paragraphs\": " << r.paragraphs << ",\n"; |
| 231 | std::cout << " \"syllables\": " << r.syllables << ",\n"; |
| 232 | std::cout << " \"avg_word_length\": " << std::fixed << std::setprecision(1) << r.avgWordLen << ",\n"; |
| 233 | std::cout << " \"avg_sentence_length\": " << std::fixed << std::setprecision(1) << r.avgSentenceLen << ",\n"; |
| 234 | std::cout << " \"flesch_score\": " << std::fixed << std::setprecision(1) << r.fleschScore << ",\n"; |
| 235 | std::cout << " \"reading_level\": \"" << r.readingLevel << "\",\n"; |
| 236 | std::cout << " \"reading_time\": \"" << r.readingTime << "\",\n"; |
| 237 | std::cout << " \"sentiment\": \"" << r.sentiment << "\",\n"; |
| 238 | std::cout << " \"sentiment_score\": " << std::fixed << std::setprecision(1) << r.sentimentScore << ",\n"; |
| 239 | std::cout << " \"positive_words\": " << r.positiveWords << ",\n"; |
| 240 | std::cout << " \"negative_words\": " << r.negativeWords << ",\n"; |
| 241 | std::cout << " \"long_words\": " << r.longWords << ",\n"; |
| 242 | std::cout << " \"top_words\": [\n"; |
| 243 | for (int i = 0; i < (int)r.topWords.size(); i++) { |
| 244 | std::cout << " {\"word\": \"" << r.topWords[i].first |
| 245 | << "\", \"count\": " << r.topWords[i].second << "}"; |
| 246 | if (i < (int)r.topWords.size() - 1) std::cout << ","; |
| 247 | std::cout << "\n"; |
| 248 | } |
| 249 | std::cout << " ]\n"; |
| 250 | std::cout << "}\n"; |
| 251 | } |
| 252 | |
| 253 | int main(int argc, char* argv[]) { |
| 254 | if (argc < 2) { |