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

migg

como fonciona \b

14 mensagens neste tópico

Segundo isto

Código

Significado

\b Retrocesso ("back")

\f Alimentação de formulário ("form feed")

\n Nova linha ("new line")

\t Tabulação horizontal ("tab")

\" Aspas

\' Apóstrofo

\0 Nulo (0 em decimal)

\\ Barra invertida

\v Tabulação vertical

\a Sinal sonoro ("beep")

\N Constante octal (N é o valor da constante)

\xN Constante hexadecimal (N é o valor da constante)

\b serve para retorcer ou seja voltar a trás eu gostava de saber como usa-lo eu escrevo

por exemplo:

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

int main ()

{



    
printf("          Clique 1 para fazer a media dos teste___________________"); 
printf("           Clique 2 para ver a data dos testes________________________\b");


system("Pause");

return(0);

}
       

       

 

Isto devia recuar de que modo?

não entendo muito bem como usa-lo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o \b não recua cm tu pensas, se não tou em erro tu julgas que ele volta um passo a traz, com td como disse o Ferreira só apaga o ultimo caracter;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok,obrigado alguem me pode explicar então como voltar para trás num programa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

por exemplo neste codigo que eu ando a trabalhar:

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

int main()
{
   int opc, numtest, opcdois, ld, lm, md, mm, fd, fm, id, im, hd, hm, gd, gm, ed, em, cd, cm, mod, mom;
   float media, a, b, c, d;

   do {
printf("          Clique 1 para fazer a media dos teste___________________nnn");
printf("n              Clique 2 para ver a data dos testes________________________n");
scanf("%d", &opc);
   } while ((opc < 1) || (opc > 2));

   switch (opc)
   {
   case 1:
printf("nnQuantos testes tives-te?nn");
printf("1nn");
printf("2nn");
printf("3nn");
printf("4nn");
scanf("%d", &numtest);

if (numtest == 1)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);

    media = a / 1;

    printf("tnA media e de:%f", media);
}

if (numtest == 2)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);
    scanf("%f", &b);

    media = (a + b) / 2;

    printf("tnA media e de:%f ", media);
}
if (numtest == 3)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);
    scanf("%f", &b);
    scanf("%f", &c);

    media = (a + b + c) / 3;

    printf("tnA media e de:%f ", media);
}
if (numtest == 4)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);
    scanf("%f", &b);
    scanf("%f", &c);
    scanf("%f", &d);

    media = (a + b + c + d) / 4;

    printf("tnA media e de:%f ", media);
}
break;

   case 2:
do
{
    printf("------Inserir data de um teste-----1nn");
    printf("------Ver a tabela de testes-----2nn");
    scanf("%d", &opcdois);
}
while ((opcdois < 1) || (opcdois > 2));

switch (opcdois)
{
case 1:
    printf("nnnLingua Portuguesa                                nn");
    scanf(" %d", &ld);
    scanf(" %d", &lm);
    printf("Matematica                                             nn");
    scanf(" %d", &md);
    scanf(" %d", &mm);
    printf("Moral                                                  nn");
    scanf(" %d", &mod);
    scanf(" %d", &mom);
    printf("Fisico quimica                                         nn");
    scanf(" %d", &fd);
    scanf(" %d", &fm);
    printf("Ciencias Naturais                                      nn");
    scanf(" %d", &cd);
    scanf(" %d", &cm);
    printf("Educacao Fisica                                        nn");
    scanf(" %d", &ed);
    scanf(" %d", &em);
    printf("Geografia                                              nn");
    scanf(" %d", &gd);
    scanf(" %d", &gm);
    printf("Historia                                               nn");
    scanf(" %d", &hd);
    scanf(" %d", &hm);
    printf("Ingles                                                 nn");
    scanf(" %d", &id);
    scanf(" %d", &im);
    printf("Frances                                                nn");
    scanf(" %d", &fd);
    scanf(" %d", &fm);
    printf("  ________________________Dia___|____Mes_______________________________");
    printf("nnnLingua Portuguesa |   %d      | %d         nn", ld, lm);
    printf("Matematica              |   %d      | %d         nn", md, mm);
    printf("Moral                   |   %d      | %d         nn", mod, mom);
    printf("Fisico quimica          |   %d      | %d         nn", fd, fm);
    printf("Ciencias Naturais       |   %d      | %d         nn", cd, cm);
    printf("Educacao Fisica         |   %d      | %d         nn", ed, em);
    printf("Geografia               |   %d      | %d         nn", gd, gm);
    printf("Historia                |   %d      | %d         nn", hd, hm);
    printf("Ingles                  |   %d      | %d         nn", id, im);
    printf("Frances                 |   %d      | %d         nn", fd, fm);
    printf("");
    break;

case 2:
    printf("nnn    ________________________Dia___|____Mes_______________________________");
    printf("nnnLingua Portuguesa          %d         %d         nn", ld, lm);
    printf("Matematica                       %d         %d         nn", md, mm);
    printf("Moral                            %d         %d         nn", mod, mom);
    printf("Fisico quimica                   %d        %d        nn", fd, fm);
    printf("Ciencias Naturais                %d         %d         nn", cd, cm);
    printf("Educacao Fisica                  %d         %d         nn", ed, em);
    printf("Geografia                        %d         %d         nn", gd, gm);
    printf("Historia                         %d         %d        nn", hd, hm);
    printf("Ingles                           %d         %d         nn", id, im);
    printf("Frances                          %d         %d        nn", fd, fm);
    printf("    ____________________________________________________________nn");
    break;
}
   }

   system("Pause");
   return (0);
}

eu selecciono uma opção faço essa opção e quero depois voltar para o inicio do programa como faço isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já percebi eu ando a estudar por uma apostila e lembreime como se faz temos de usar um ciclo e o comando goto certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, antes de mais, o comando goto não costuma ser uma boa ideia, porque depois ficas com o código todo desorganizado e quando há um bug é tramado de corrigir.

O mais correcto é usares loops do género "while", "do... while" ou "for".

Já agora, em vez de essa trapalhada toda para fazer a média, podias usar um loop como um somatório. :)

Exº:

int numtestes; //Total de testes
int notas[6]; // Notas dos testes (Até 6 testes)

//INPUT
scanf("%d", &numtestes);   // Recebe o número de testes
for (int n=0;n<numtestes && n<6;n++) { // Para n=0, enquanto n for menor que o numero de testes, n vai aumentando de 1 em 1
scanf("%d", &notas[n]);  // Recebe o valor das notas
}

// Calculo
int total; // Soma das notas dos testes
for (int n=0;n<numtestes && n<6;n++) {
total+=notas[n];
}
int media=total/numtestes;

Visto que não estou habituado a trabalhar em C e não testei o código, isto pode ter uns erros, mas o que interessa é que tenhas uma ideia de como usar loops e de como podes simplificar o código.

P.S: Já agora "tives-te" não existe, escreve-se "tiveste" :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu faço assim por exemplo está certo?

#include <stdio.h>
int main()
{
int opcao;
while (opcao != 5)
       	{
	REFAZ: printf("\n\n Escolha uma opcao entre 1 e 5: ");
       		scanf("%d", &opcao);
       		if ((opcao > 5)||(opcao <1)) goto REFAZ;  /* Opcao invalida: volta ao rotulo REFAZ */
       		switch (opcao)
          	{ 
          		case 1: 
               			printf("\n --> Primeira opcao..");
          		break; 
          		case 2: 
               			printf("\n --> Segunda opcao..");
          		break; 
          		case 3: 
               			printf("\n --> Terceira opcao..");
          		break; 
         		case 4: 
               			printf("\n --> Quarta opção..");
          		break; 
          		case 5: 
               			printf("\n --> Abandonando..");
          		break; 
          	} 
       	}
return(0);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faz antes assim:

do {
  printf("\n\n Escolha uma opcao entre 1 e 5: ");
  scanf("%d", &opcao);
} while((opcao > 5)||(opcao <1))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Teres o if com goto ou não teres, em termos práticos, no teu código, é a mesma coisa.

Em termos teóricos, utilizar goto em C é um erro grave, porque quebra o fluxo (obrigado pedrosorio :D ) do programa e é mais uma fonte de problemas do que de soluções. Além de que, até hoje, nunca vi uma situação em que não fosse possível substituir a funcionalidade do goto por outra construção qualquer.

No caso do teu código, como já disse, o goto não faz lá rigorosamente nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em termos teóricos, utilizar goto em C é um erro grave, porque quebra o flow (não consegui traduzir :D )

fluxo :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu sei mas aquilo era um exemplo

já meti a opção para retorcer no código que postei anteriormente e gostava que me dissessem como voltar para a opção de inicio se usar o comando goto?

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

int main()
{
   int opc, numtest, opcdois, ld, lm, md, mm, fd, fm, id, im, hd, hm, gd, gm, ed, em, cd, cm, mod, mom, retro;
   float media, a, b, c, d;

   do {
     REFAZ:
printf("nnn          Clique 1 para fazer a media dos teste___________________nnn");
printf("n              Clique 2 para ver a data dos testes________________________n");
scanf("%d", &opc);
   } while ((opc < 1) || (opc > 2));

   switch (opc)
   {
   case 1:
printf("nnQuantos testes tives-te?nn");
printf("1nn");
printf("2nn");
printf("3nn");
printf("4nn");
scanf("%d", &numtest);

if (numtest == 1)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);

    media = a / 1;

    printf("tnA media e de:%f", media);
    printf("nnPara voltar para o inicio do programa precione 1nn");
    scanf("%d", &retro);

    while (retro == 1)
	goto REFAZ;

}

if (numtest == 2)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);
    scanf("%f", &b);

    media = (a + b) / 2;

    printf("tnA media e de:%f ", media);
    printf("nnPara voltar para o inicio do programa precione 1nn");
    scanf("%d", &retro);

    while (retro == 1)
	goto REFAZ;
}
if (numtest == 3)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);
    scanf("%f", &b);
    scanf("%f", &c);

    media = (a + b + c) / 3;

    printf("tnA media e de:%f ", media);
    printf("nnPara voltar para o inicio do programa precione 1nn");
    scanf("%d", &retro);

    while (retro == 1)
	goto REFAZ;
}
if (numtest == 4)
{
    printf("Insira a nota dos testes nn");
    scanf("%f", &a);
    scanf("%f", &b);
    scanf("%f", &c);
    scanf("%f", &d);

    media = (a + b + c + d) / 4;

    printf("tnA media e de:%f ", media);
    printf("nnPara voltar para o inicio do programa precione 1nn");
    scanf("%d", &retro);

    while (retro == 1)
	goto REFAZ;
}
break;

   case 2:
do
{
    printf("------Inserir data de um teste-----1nn");
    printf("------Ver a tabela de testes-----2nn");
    scanf("%d", &opcdois);
}
while ((opcdois < 1) || (opcdois > 2));

switch (opcdois)
{
case 1:
    printf("nnnLingua Portuguesa                                nn");
    scanf(" %d", &ld);
    scanf(" %d", &lm);
    printf("Matematica                                            nn");
    scanf(" %d", &md);
    scanf(" %d", &mm);
    printf("Moral                                                  nn");
    scanf(" %d", &mod);
    scanf(" %d", &mom);
    printf("Fisico quimica                                        nn");
    scanf(" %d", &fd);
    scanf(" %d", &fm);
    printf("Ciencias Naturais                                      nn");
    scanf(" %d", &cd);
    scanf(" %d", &cm);
    printf("Educacao Fisica                                        nn");
    scanf(" %d", &ed);
    scanf(" %d", &em);
    printf("Geografia                                              nn");
    scanf(" %d", &gd);
    scanf(" %d", &gm);
    printf("Historia                                              nn");
    scanf(" %d", &hd);
    scanf(" %d", &hm);
    printf("Ingles                                                nn");
    scanf(" %d", &id);
    scanf(" %d", &im);
    printf("Frances                                                nn");
    scanf(" %d", &fd);
    scanf(" %d", &fm);
    printf("  ________________________Dia___|____Mes_______________________________");
    printf("nnnLingua Portuguesa |  %d      | %d        nn", ld, lm);
    printf("Matematica              |  %d      | %d        nn", md, mm);
    printf("Moral                  |  %d      | %d        nn", mod, mom);
    printf("Fisico quimica          |  %d      | %d        nn", fd, fm);
    printf("Ciencias Naturais      |  %d      | %d        nn", cd, cm);
    printf("Educacao Fisica        |  %d      | %d        nn", ed, em);
    printf("Geografia              |  %d      | %d        nn", gd, gm);
    printf("Historia                |  %d      | %d        nn", hd, hm);
    printf("Ingles                  |  %d      | %d        nn", id, im);
    printf("Frances                |  %d      | %d        nn", fd, fm);
    printf("nnPara voltar para o inicio do programa precione 1nn");
    scanf("%d", &retro);

    while (retro == 1)
	goto REFAZ;

    break;

case 2:
    printf("nnn    ________________________Dia___|____Mes_______________________________");
    printf("nnnLingua Portuguesa          %d        %d        nn", ld, lm);
    printf("Matematica                      %d        %d        nn", md, mm);
    printf("Moral                            %d        %d        nn", mod, mom);
    printf("Fisico quimica                  %d        %d        nn", fd, fm);
    printf("Ciencias Naturais                %d        %d        nn", cd, cm);
    printf("Educacao Fisica                  %d        %d        nn", ed, em);
    printf("Geografia                        %d        %d        nn", gd, gm);
    printf("Historia                        %d        %d        nn", hd, hm);
    printf("Ingles                          %d        %d        nn", id, im);
    printf("Frances                          %d        %d        nn", fd, fm);
    printf("    ____________________________________________________________nn");
    printf("nnPara voltar para o inicio do programa precione 1nn");
    scanf("%d", &retro);

    while (retro == 1)
	goto REFAZ;

    break;
}
   }

   system("Pause");
   return (0);
}

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