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

n3lThon

EOF em C

16 mensagens neste tópico

Alguém sabe este exemplo em C?

while True:
try:
  x=raw_input()
  print x
except EOFError:
  break

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

penso que será algo:

While(1){
if(scanf("%s", x))
  printf("%s", x);
else
  break;
}

não sei se o conteúdo scanf é isso, mas deve ser pelo menos algo parecido...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Diz-me uma coisa, como é que simulo um EOF para testar o programa?

Ctrl-D quando estiveres a introduzir o input.

JJ

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já me tinha procurado tudo e mais alguma coisa para fazer esse efeito do Ctrl-D.

Obrigado aos dois. :D  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Diz-me uma coisa, como é que simulo um EOF para testar o programa?

Ctrl-Z em Windows, se não me engano.

Mas podes sempre testar com um ficheiro redireccionado:

executavel < fich_teste

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nada!

esqueci-me de por no código, mas não te esqueças de limpar sempre o buffer no scanf, senão não dá nada de jeito! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz

Ctrl-Z em Windows, se não me engano.

(...)

Fiz Ctrl-D e funcionou.

nada!

esqueci-me de por no código, mas não te esqueças de limpar sempre o buffer no scanf, senão não dá nada de jeito! :)

ok!! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estou a conseguir usar o Ctrl-D nem o Ctrl-Z em strings. Apenas em inteiros. :/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estou a conseguir usar o Ctrl-D nem o Ctrl-Z em strings. Apenas em inteiros. :/

é suposto funcionar em td... testei com o código que meti em cima e funcionava direitinho...

o k t aparece aí?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <stdio.h>

int main(){

char x[10];

while(1){
	if(scanf(" %s", x) == 1)
		printf("%s\n", x);
		else
  			break;
}

return 0;

}

ok, acabadnho de testar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bolas. :)

A mim não sai do ciclo, e está sempre a imprimir um losangulo. :/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

deve ter a ver com isso entao, eu tou em linux, nc trabalhei com C em windows...

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