Я пытаюсь создать лексику, используя входной файл в C ++ - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть файл file.txt. Я хочу создать в C ++ функцию, которая сможет читать слова в этом файле, печатать каждое слово и сколько раз они встречаются в файле file.txt

Я делаю некоторые исследования, я знаю, что могу использовать парсер и писатель, а также класс карты, любую помощь, пожалуйста?

bool Parser::hasMoreTokens() {
  if(source.peek()!=NULL){
    return true;
}
else{
     return false;
}
}

Ответы [ 3 ]

3 голосов
/ 11 апреля 2011

Это домашняя работа?Ищите онлайн для std::map, std:string, std::ifstream и std::ofstream.

1 голос
/ 11 апреля 2011

Считайте файл, используя ifstream , сохраните в map из string s, используйте int как значение map и увеличивайте его каждый раз, когда вывстретить определенный string.Затем запишите их в файл, используя ofstream .

0 голосов
/ 13 апреля 2011

Если вы хотите быть эффективными и выполнить это в меньшем количестве строк, но используя стандартную библиотеку, попробуйте это:

#include <fstream>
#include <iostream>
#include <iterator>
#include <set>
#include <string>

int main()
{
     std::ifstream f("text.txt");
     std::istream_iterator<std::string> eof;
     std::multiset<std::string> words( std::istream_iterator<std::string>(f) , eof);

     std::ofstream f_out("text_output.txt");
     for( std::multiset<std::string>::iterator i = words.begin(); i!=words.end(); i = words.upper_bound(*i) )
          f_out << "the word " << *i << " found " << words.count(*i) << " times\n";

}

Этот код захватывает файл с именем "text.txt" и выводитрезультат для "text_output.txt"

  • Содержимое "text.txt":
    может может III сделать это правильно?
    Сколько раз мне нужно запрограммировать одинвещь, чтобы помнить это?

  • Содержимое "text_output.txt":
    слово Как найдено 1 раз
    слово, которое я нашел 4 раза
    слово может быть найдено 3 раза
    слово найдено 2 раза
    слово это?найдено 1 раз
    найденное слово 1 раз
    нужное слово найдено 1 раз
    найденное слово 1 раз
    программа слова найдена 1 раз
    правильно ли слово?найдено 1 раз
    слово запомнить найдено 1 раз
    слово найдено 1 раз
    слово найдено 1 раз
    найдено слово 1 раз
    найдено слово 2 раза

Хороший ресурс для изучения фантастических способов эффективного использования c ++ - книга под названием Accelerated c ++.

С уважением,

...