4
respostas

Contagem de palavras não está funcionando

Ao tentar contar as linhas e palavras através do arquivo, usando a função:

    int quantidade_palavras;
    arquivo >> quantidade_palavras;
    cout << "O arquivo possui " << quantidade_palavras << "palavras." << endl;

O resultado estava sempre sendo 0, o arquivo está no mesmo local que o main.cpp e o main.exe, usei o file.is_open() para conferir e o arquivo estava abrindo (estava ok), tentei usar o g++11, 14 e 17 sem exito.

Buscando na internet não encontrei menção dessa forma de obter a quantidade de palavras, então usei outro método que funcionou bem também:

    int count_lines()
{
  int count = 0;
  string line;
  ifstream myfile(filename);
  if (myfile.is_open())
  {
        while (getline(myfile, line))
        {
              count++;
        }
        myfile.close();
        return count;
  }
  else cout << "Unable to open file";
  return -1;
}
4 respostas

Oi oi, Italo! Tudo bem?

Vou tentar te auxiliar nessa dúvida.

Perfeito, você verificou que o arquivo está abrindo corretamente.

Você pode colocar aqui o código que está executando aí no seu projeto?

Dessa forma posso te auxiliar melhor.

Aguardo retorno :)

int quantidade_palavras;
arquivo >> quantidade_palavras;
cout << "O arquivo possui " << quantidade_palavras << "palavras." << endl;

Se você copiou este código diretamente do seu projeto, acredito que o erro seja na escrita da palavra "count" na ultima linha. 
Você digitou sem a letra "n". e ficou cout.

Olá.

Não é bem assim, Danilo Teixeira. O cout está na biblioteca padrão do C++ e é usado para imprimir informações no console. O nome vem de console out. No caso, o código publicado está com using namespace std no topo, então é possível usar sem colocar std:: antes.

Dessa forma, o código publicado está sim correto na penúltima linha.

quem tiver tendo dificuldades de verificar as palavras do arquivo

é so mudar essa linha no código arquivo.open("palavras.txt", fstream::app|fstream::in|fstream::out);

código correto  para ler o arquivo aberto

Lembrando que vc ainda tem que preencher o arquivo manualmente. até aqui pelo menos.