Ir para conteúdo
Fórum Script Brasil
  • 0

Multiplas Linhas


tatsuu

Pergunta

Empaquei em dois exercicios aqui, mas os dois são bem parecidos:

2. Escreva um programa que leia um texto do vídeo com múltiplas linhas e carácter a carácter. O fim do texto é marcado com EOF (end of file) que se obtém com Ctrl-D no Unix e Ctrl-Z no DOS. As linhas de texto deverão depois ser escritas no écran de trás para a frente (em reverso).

3. Escreva um programa que leia um texto (múltiplas linhas) até à ocorrência de EOF. O programa deverá fazer uma estatística do comprimento das palavras lidas, i. e., deverá indicar o número de palavras com 1 letra, o número de palavras com 2 letras, ..., etc

Minhas dúvidas são as seguintes:

1) como eu coloco multiplas linhas? estou falando do tipo... como eu vou colocar multiplas linhas sem saber quantas linhas são?

2) como se faz para ler o numero de letras de cada palavra, ou seja, não a linha inteira?

3) e também não entendi essa parada de Crtl-Z... é pra fazer um programa que eu apertando crtl-z ele é finalizado? como faço isso?

4) o que seria écran?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
1) como eu coloco multiplas linhas? estou falando do tipo... como eu vou colocar multiplas linhas sem saber quantas linhas são?

Você não vai colocar, o usuário é que vai teclar enter quantas vezes ele quiser (para as linhas).

2) como se faz para ler o numero de letras de cada palavra, ou seja, não a linha inteira?

Acho que é com a função getch (ou getche).

3) e também não entendi essa parada de Crtl-Z... é pra fazer um programa que eu apertando crtl-z ele é finalizado? como faço isso?

Sim, essa parece ser a idéia. Nunca testei, mas deve ser possível você detectar esse caracter com a função getch().

4) o que seria écran?

É o vídeo (tela) no Português Lusitano (de Portugal).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

aí Graymalkin,

valeu, mas pra te falar a verdade eu contiuo não entendendo.. eheeh

bom... quanto as multiplas linhas eu sei que é o usuário que vai entrar com as linhas e apertar o enter. Mas eu queria saber como fazer um loop para isso... afinal aonde eu vou amarzenar as linhas? eu fiz um programa simplificando para 5 linhas no estilo:

char linha1[100], linha2[100], linha3[100], linha4[100], linha5[100];

mas aí o numero de linhas já é pré-determinado. e não do jeito que o problema pede para ser qtas linhas o usuário quiser.

e qt ao getch() eu sei usá-lo apenas ele lendo um caracter do teclado, e não uma palavra, como faço para ele ler 1 palavra inteira?

bom acho que ajudaria mesmo se alguém desse pelo menos o esquema de como ficaria cada um dos dois programas acima...

valeu!

Link para o comentário
Compartilhar em outros sites

  • 0

aí Graymalkin,

valeu, mas pra te falar a verdade eu contiuo não entendendo.. eheeh

bom... quanto as multiplas linhas eu sei que é o usuário que vai entrar com as linhas e apertar o enter. Mas eu queria saber como fazer um loop para isso... afinal aonde eu vou amarzenar as linhas? eu fiz um programa simplificando para 5 linhas no estilo:

char linha1[100], linha2[100], linha3[100], linha4[100], linha5[100];

mas aí o numero de linhas já é pré-determinado. e não do jeito que o problema pede para ser qtas linhas o usuário quiser.

Você pode guardar todas as linhas em um único vetor (veja o exemplo abaixo).

e qt ao getch() eu sei usá-lo apenas ele lendo um caracter do teclado, e não uma palavra, como faço para ele ler 1 palavra inteira?

Com um loop. O que é uma palavra ou uma frase se não uma sequência de caracteres isolados?

bom acho que ajudaria mesmo se alguém desse pelo menos o esquema de como ficaria cada um dos dois programas acima...

Ah, mas aí perde todo o tesão de gritar (após dois dias e meio de tentativas): "Consegui, p$@$#@#@!!!" :D

Mas, veja um exemplo aproximado do que seria o esquema:

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main()
{
    char texto[1000];
    char c;
    int pos = 0;
    
    do    
    {
        c = getche();
        if (c==13) // Se for ENTER
        {
            printf("\n"); // Pula linha
            texto[pos] = '\n'; // Guarda o caracter de nova linha na posição de "texto"
        }
        else
            texto[pos] = c; // Guarda o caracter em uma posição de "texto"
            
        pos++; // Incrementa a posição
    } while (c!=26);
    texto[pos-1] = '\0';
    
    printf("\n\n\n");
    printf("%s", texto);
    printf("\n\n\n");
    
    system("pause");    
}

Falta tratar o backspace, mas acho que já dá pra ter uma idéia.

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
afinal aonde eu vou amarzenar as linhas? eu fiz um programa simplificando para 5 linhas no estilo.

A dica é lembrar que as quebras de linha nada mais são do que caractéres especiais, denominados \n (ou \r\n, dependendo do sistema operacional). Assim, em uma mesma string, você pode guardar até um texto inteiro, com quantos parágrafos quiser. ;)

Té mais.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...