Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

273
Visualizações
Condición usando EOF en C

El siguiente código es mi respuesta al ejercicio 1-13 en K&R El lenguaje de programación C, que solicita un histograma para la longitud de las palabras en su entrada. Mi pregunta es con respecto a EOF. ¿Cómo puedo salir exactamente del ciclo while sin terminar el programa por completo? He usado Ctrl-Z, que según he oído es EOF en Windows, pero esto finaliza el programa, en lugar de interrumpir el ciclo while. ¿Cómo puedo llegar al ciclo for después del ciclo while sin finalizar el archivo? Esta es una pregunta general, no solo con mi código a continuación, sino para todo el código en K&R que usa: while ((c = getchar()) != EOF). ¡Gracias por adelantado! `

 #include <stdio.h> #define MAXLENGTH 20 /* Max length of a word */ #define IN 1 /* In a word */ #define OUT 0 /* Out of a word */ int main() { int c, i, j, len = 0; int lenWords[MAXLENGTH]; bool state = OUT; for (i = 0; i < MAXLENGTH; ++i) { lenWords[i] = 0; } c = getchar(); while (c != EOF) { if (c != ' ' && c != '\n' && c != '\t') { if (state == IN) { lenWords[len - 1] += 1; /* a length 5 word is in subscript 4 */ len = 0; } state = OUT; } else { state = IN; } if (state == IN) { len += 1; } c = getchar(); } /* Generating a histogram using _ and | */ for (i = 0; i < MAXLENGTH; ++i) { /* Underscores write over one another; not so efficient */ for (j = 0; j < lenWords[i]; ++j) { putchar('_'); } putchar('\n'); for (j = 0; j < lenWords[i]; ++j) { putchar('_'); } putchar('|'); printf("Length: %d, Frequency: %d", i + 1, lenWords[i]); } return 0; }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Creo que tu pregunta pertenece a otra red.

Respuestas aquí: ¿Equivalente a ^D (en bash) para cmd.exe?

No. Ctrl D en *nix genera un EOF, que varios shells interpretan como ejecución de exit . El equivalente para EOF en Windows es Ctrl Z , pero cmd.exe no interpreta esto especialmente cuando se escribe en el aviso.

over 4 years ago · Santiago Trujillo Relatório

0

Ctrl + D para enviar EOF a la entrada estándar y detener la lectura en *nix.

Echa un vistazo aquí .

over 4 years ago · Santiago Trujillo Relatório

0

Tienes que comprobar si usas *nix o windows.

En Windows, EOF se representa con Ctrl+Z , mientras que en *nix EOF se representa con Ctrl+D

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda