• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

lopes

Ajuda pesquisa de palavras

3 mensagens neste tópico

JA RESOLVI... NAO RESPONDAM...

OBRIGADO NA MM... :P

o enunciado é:

Construa, em C++, uma aplicação que peça ao utilizador o nome de um ficheiro de texto, e uma palavra. A aplicação deve então escrever para o ecrã uma mensagem a informar o utilizador sobre quais são as linhas do ficheiro (o seu número) onde a palavra ocorre. Teste o seu funcionamento.

 

Aki vai a minha tentativa inacabada de resolução:

int main()
{
    cout<<"nome do ficheir sff:> ";
    string fich;
    cin>>fich;
    ifstream f_in(fich.c_str() );
    if(f_in.fail() )
    {
        cerr<<"ficheiro n abriu, desisto ";
        exit(EXIT_FAILURE);
    }
    else
        {
            cout<<"introduza a palavra a procurar:> ";
            string palavra;
            cin>>palavra;
            while(not cin.fail())
            {
                string linha;
                getline(cin,linha);
                linha.find(palavra);

...

agora n tou a ver cm ek faço para verificar que a palavra foi encontrada(ou nao) na linha a procurar e dai fzr cm q o programa no final, diga quais foram a linhas do ficheiro de texto onde foi encontrada a palavra....

ah, e isto n é nenhum trabalho, eu estou pura e simplesmente a estudar para o exame, so que este é apenas mais um dos problemas do qual n tenho solução, pois o livro não a dá...!

HELP!!lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os titulos devem ser o mais especificos possiveis.

Para colocar código deveras utilizao o GeSHi, tens aqui um tutorial de Como utilizar o GeSHi da autoria do Hipnoted.

As dúvidas devem ser colocadas na secção especifica dentro das linguagens.

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não devias estar a ler as linhas de um ficheiro?

não estar a contar as linhas.

fazes um 'find' da palavras mas não usas o resultado...

esse 'while' devia ser substituído por algo como

for(linha=1;getline(fich,str);linha++)
{
  if(str.find(...)!=string::npos) cout << linha << endl;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora