1
resposta

Interacao sobre o arquivo.txt é automatico?

Normalmente nos for da vida temos que passar os indexes ou alguma coisa, tipo como acontece com array ou vetor de string .. mas no caso de leitura de palavras, isso acontece automaticamente?

for (int linha=0; linha<qde_palavras; linha++) { string palavra_lida; arquivo >> palavra_lida; cout << "Linha " << linha << ": " << palavra_lida << endl; }

o "arquivo" le uma linha por vez? Nao precisamos informar qual a linha deve ser lida?

1 resposta

Na verdade se tu observar na aula ele tem um número inteiro no inicio do arquivo, então ele seta o valor antes do laço da quantidade de palavras numa variável inteira e ele usa justamente essa quantidade de palavras pra percorrer o arquivo, então ele seria o "index"

int qde_palavras; 

arquivo >> qde_palavras;

Então as linhas que devem ser lidas são setadas por essa variável e logo em seguida tu informa dentro do laço o tipo de dado que tu vai ler e o que ele é dentro do arquivo em uma variável e isso acaba se tornando as palavras lidas do arquivo.

string palavra_lida;

arquivo >> palavra_lida;

Dessa forma a função que ele implementou fica desse jeito

void le_arquivo(){
    ifstream arquivo;
    arquivo.open("palavra.txt");

    int qde_palavras;   //aqui é onde criar a variável inteira
    arquivo >> qde_palavras; // ele seta a variável do tipo inteira pra armazenar o valor do arquivo na primeira linha

        for (int i=0;i<qde_palavras;i++){ 
            string palavra_lida;
            arquivo >> palavra_lida;
        }
}