Ir para conteúdo
Fórum Script Brasil

vangodp

Membros
  • Total de itens

    883
  • Registro em

  • Última visita

Tudo que vangodp postou

  1. para comparar strings tem que usar strcmp Se trata de um string estilo C
  2. C é estruturado(funções estructs etc). C++ é programação orientada a objetos(tudo o que tem C + classes). você já sabe C? Se souber busque sobre classes em c++ e de uma olhada(criar classes, usar , etc)
  3. no windows isso é assim, mas se você puser fizer um define assim: #include <stdio.h> #define __USE_MINGW_ANSI_STDIO 1 int main(){ long long int n=10; printf("%lld", n); return 0; } o lld funciona. outras opções são: ou criar um flag no qual seja possivel ativar e desativar A ultima opção seria incluindo diretamente na linha de compilação: -D __USE_MINGW_ANSI_STDIO=1 graças a @isrnick que me passou essa solução >_<
  4. aqui também tem que usar o botão <> 😆
  5. prove printf("%I64d", n); serve para long long int n = 9234567890123456; printf("%I64d", n);
  6. #include <stdio.h> int main() { int n[4], i; scanf ( "%3d.%3d.%3d-%2d", &n[0], &n[1], &n[2], &n[3] ); for ( i = 0; i < 4; i++ ) { printf ( "%d\n", n[i] ); } return 0; }
  7. Ao não usar o botao "code" para introduzir seu código ele perdeu algimas partes como [i] ...já que isso é o comando para que as letras saiam em itálico(tombadas). Por favor, volte a introduzir seu programa usando o botão code. É o o botão <> que está justo acima quando você estiver redatanto seu testo.
  8. faça o include de #include <unistd.h> e já pode usar sleep
  9. Isso é assim por causa da pilha. Quando você executar esse programa(misterio.exe talvez?) é criado uma pilha, e nela se vão armazenando todas as variáveis: vamos supor que seu programa fosse este: #include<stdio.h> void misterio1(int xval){ int x; x = xval; } void misterio2(int nada){ int y; } int main(){ int a; int b; return 0; } Ao executar esse programa aconteceria o seguinte... main iria para a pilha e ficaria desta forma | | | | | | |------------| | int b | <-Obviamente b entrou encima de a porque foi declarada depois de a(pilha! Lembre!) | int a | <-a entrou antes de b na pilha porque foi declarada primeiro(por isso se chama uma pilha) |----main----| <-inicio de main Mas isso ainda n explica o que você quer saber, só queria deixar constância de como vai parar na memória da pilha as variáveis. Agora vamos supor que vou chamar misterio1... Como ficaria na pilha? O programa seria esse: #include<stdio.h> void misterio1(int xval){ int x; x = xval; } void misterio2(int nada){ int y; } int main(){ int a; int b; misterio1(7); return 0; } E na pilha ao momento de chamar misterio1 e passamos 7 ficaria assim: | | | int x = xval| <-...e depois entra as variaveis na ordem que foram sendo declaradas. //ler quinto essa linha | int xval=7 | <-primeiro entra na pilha os parametros da função misterio1... //ler quarto essa linha |--misterio1--| <- ...isso quer dizer que misterio entra na pilha--------------------------------* //ler terceiro essa linha | | | //ler segundo essa linha | misterio(7) | Chamada a misterio1 passando um 7(main faz uma parada e salta a misterio...)-----* //ler primeiro essa linha | int b | | int a | |----main-----| O problema é que você esta achando que quando você chama o seu programa esta acontecendo isso: | | | int y | | int nada=15 | |--misterio2--| | | | int x = xval| | int xval=7 | |--misterio1--| | | | misterio(7) | | int b | | int a | |----main-----| mas na verdade quando uma função é invocada entra na memória esse função termina de fazer seu trabalho e sai da pilha então nunca chegamos a ter isso de acima pois ambas funções(misterio1 e 2) nunca chegam a estar juntas na memória. O que acontece é isso.... 1º Executamos ao programa e main vai para a pilha: | int b | | int a | |----main-----| fazemos a chamada de mistério 1 passando 7. Mistério entra na pilha: | | | int x = xval| | int xval=7 | |--misterio1--| | | | misterio(7) | | int b | | int a | |----main-----| dai você imprime X | imprime(x) | //printf("\n %d\n",x); | int x = xval| | int xval=7 | |--misterio1--| | | | misterio(7) | | int b | | int a | |----main-----| Depois disso a função sai da memória porem note em que parte da pilha está X porque aí justamente está o "misterio" Como falei misteior1 sai da pilha | | |misterio2(15)| | misterio1(7)| | int b | | int a | |----main-----| E note que agora invocou misterio2(15), porem misterio1 n existe mais agora pilha, é misterio2 quem vai entrar na pilha | imprime y | printf..... blablabla y | int y | | int nada=15 | |--misterio2--| | | |misterio2(15)| | misterio1(7)| | int b | | int a | |----main-----| Note onde caiu y!!! em cima onde estava x quando misterio1 estava na pilha. E adivinha o mistério....? na função misteior1 você fazia x = xval mas na misterio2 você n faz y = nada, então o que você tem em y é lixo! Esse é o mistério shueshueh você está imprimindo lixo HAHAAHH | imprime y | | int y | <---aqui você tem lixo pois o x estava aqui antes! | int nada=15 | |--misterio2--| | | |misterio2(15)| | misterio1(7)| | int b | | int a | |----main-----| Se você tivesse colocado algum valor nessa x ates de sair de misterio1 esse valor teria sid impresso. prove isso: #include <stdio.h> #include <stdlib.h> void misterio1(int xval) { int x; x = xval; /* Imprima o endereço e valor de x aqui */ printf("\nvalor %d direcao %d\n", x,&x ); //mostra o valor que foi atribuido a X,como na função //o valor de 7 e substituido pela variavel da função xval; //e quando igualamos a variavel x o valor ira se tornar o mesmo da chamada/variavel xval que foi atribuido a 7; x=9999; } void misterio2(int nada) { int y; /* Imprima o endereço e valor de y aqui */ printf("\nvalor %d direcao %d\n", y,&y ); } int main() { misterio1(7); misterio2(11); return 0; } agora vai sair um bonito 9999 mas note que tanto x como y estão na mesma direção. portanto lembre disso.. Uma função só permanece na memória por enquanto esta funcionando(realizando algo) uma vez que terminou ela sai e retorna para o main na seguinte linha. A memória é liberada. se uma função sai da memória outra vai ocupar o lugar na pilha.
  10. p q você quer uma biblioteca para fazer isso?
  11. E que parte você tem dificuldade? Mostra o que leva feito.
  12. com isso você pode ler desde um arquivo #include <stdio.h> #include <stdlib.h> int main() { int i,z; FILE *fp = fopen ( "Homiaranha.txt", "r" ); if ( !fp ) { perror ( "Arquivo não encontrado" ); exit ( -1 ); } for (i = 0; i < 125 ; i++ ) { for (z = 0; z < 128 ; z++ ) { putchar( fgetc(fp) ); } } fclose ( fp ); return 0; } copia tudo dentro de um arquivo e o chama de"homiaranha.txt" .... ... .."":" ":". .""""": : : ." : : : ..."4 : : : : .. .:....":"" : :---.$ : : : ". : : ..." : : : :--..$..:$$$": : : : .". : : : :---.: : : : : " : ." ". .:.""":""..": ".--.: : : : :". :.". :." : : : d: : --.$..:.."": : : : ". ." : :...: ."d$: "&$$$ : : : : ." : ." ". .:"" : :"":d$$": :: : : : : :: :p,. ":" ". : : d$$P ; : : :..:.$$.: :". :$$$$p."". ":-:":d$$P : .....": : : : ": : :$$"$$$$$p:--:-:-:$$P : d$$$$" : "..: : : :" "$: "c$$$$p:.:.$$: d: ... ...d&&&&$$D. d$$$$$ :."".: """$" : :$p c$$$: : $$$D d$:""": """.. .d&&&&&&&&$$$$$$$&$$$" ." :."$. "..": : .. :$p :$$:.-:d$$$$$$: : : :"".d&&&&&&&&&&&&&$$$$$&&$$." : : $$D : :: . : :":".. ".$$..$$$$P: ..:""$$$$... : : : d&&$&&&&&&&&&$$$$$$$$$$$ : ." ".. $$$$:" .".": : : : : :$$$$$$P"":" : ... : ------...:&&$$$&&$$$&&$$$$$$$$$$$$$ :" ". :".:$ : :.'-.:: : :." .:$$$$P. :."":" ":. : : d$$$$$$$$$$$$$$$$$$$$$$$$$$"". ."".d$".: .".'-..""".:" .." :"". : "": :."".. --.. : d$$$$$$$$$$$$$$$$$$$$$$$$$$$. ": d$".." :.'-.."-. :.. .:".: .".. :. : ...: " -. --..d$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$.: """$".." .".'-..". -.". ".. ." :. ."."- $: "":."" :." ".. d$$$$$$$$$$$$$$$$$&&$$$$$&&$$$$$$$.. $ ." ."._-..".'-..".'-." ": .":."..."-:-."$$$. : :: ".d$$$$$&&$$$$$$$$$&&&$$$$$&&$$$$$$$$$$" ." :. -. '-..".'-.:".: .": : .":"-:" : $$$$$......" ". . .$$$$$$$&&&&$$$$$&&&$$$$$$$&$$$$$$$$$$$."" ".:..'-. .".'-..". ". .: ." :-." $-.: $$$$$$$$$$$". : ".."d$$$$$$$$$$&&&$$$$$$$$$$$$$p"' """"" :".'-.'-.-..". :$$ ." :.":."."$$$$ :"-.: $$$$$$$$ : : ...$$&&$$$$" ""c$$$$$$$$$$p" ". :.'-.'-.'-."$$P .": .: :-:" :-. : :--..:$$$ : : :- d$$$$$$P" " :$. $.'-. $$$ ..d$$$D." :".:$$$ :" -"-.: : :.: :.-: .$$$$$$" :"$$$$". $$$: $$$$$$$$-.-: :$$$ :"--.: $$$$$$$$ : :.-: :d$$$$" .":$$$$$$$$$$$$$$$$$$$$$D:-.-: ." : : : $ :-.": :$$$$" .": :c$$$$$p c$$$$$$&&&$$D :--.:" $$$.-." : : :-:--:$$$P ..-:.: : : &&&&&&&&$$$$-." : $$$ :--..:..---:.--: : $$$$ : :._:--.:-.:.-c&&&&&&&$$$$$D:-..:$$ : ." : . : $$ ."..-$$$P :.--: :. : : $$$$$$$$$$$$$&. $$.-:" :--.:$ :--$$--$: $$$$ : :..: --:.-:.-$$$$$$$$$$$$$&&&.$ :. :" : ". : $$$"$ :--$$$$ :-- :-.:...:.c$$$$$$$$$$$$$$&&&. : -..: :$ """$$$$$$$ .d$$$$ ::---:--: .c$$$$$$$$$$$$$$$$$$$&&. :" :--.: """$ $$$ : .d$$&$$" ":--.:.- $$$$$$$&&$$$$$$$$$$$$$&&&.:.--.: :--: $$$$$$$" $$$&$$" : : : $$$$&&&&$$".$$$$$$$$$$$&&&: :..--. / $: $$$ :$_$$$&$" :-_.--.$$&&&$$$$" $$$$$$$$$$$$&&&: : : $ : $ :- d$$&&p :._: : $$&$$"" $$$$$$$$$&$$$&&:--.:.--. : : : :__.$&&$$' ".:---.$$$" $$$$$$$$$&&&$$&&$ : -:.-._:--: .d&$$p ":.:.:" $$$$$$$$$$$&&&&&& : : : : d&$p $$$$$$$$&&$$$&&&& :.--..: : :-_&$" &&$$$$$$$&&$$&&&& : :--.: : : c&$$$&$$$$&&$$&&&.:.---. : :-:--: "&&$$&&$$$&&&&&&&&: :--.: : : &&$$$&&$&&&&&&&&&:.---.: :..:.." c&&$$&&$$$&&&&&&&$ :---: : .: "c$$$$$$$$$$$$$$$..--:...:-:- : "$$$$$$$$$$$$$&& : : : : : :. :""$$$$$$&&&.--.:.-:-.:.:... : -:-.: : : : : :-::&& : : :-.:.-.:.-.:.-.:.-: .&&&. :.:.. : : : : : :$$$&&& d$$$$$$$$$$...;. : :.$$$$$$&&, .$$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$. d$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$Dp,. $$&$$$&$$$$$&&&&&&&&&$$$$$$$$$&$$$$$$$$D,. $$&&$$&&$$$$$&&&&&&&$$$$$$$$$$&&&&&&&$$$$$$. $&&$$&&&&$$$$$$&&&&$$$$&&$$$$$&&&&&&&&&$$$$&&. &&&$&&&&&&&$$$$&&&&&&&&&&$$$$$&&&&&&&&&&&&$&&&&. .$$$$&&&&&&&&&$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&. d$$$$&&&&&&&&&&$$$$$&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&. .$$$$$&&&&&&&&&&$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&$$&&&&. d$&&$&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$. d$$&&$&&&&&&&&&&$$$$$$$$$&&&&$$$&&&&$$$$$$&&&&&&&&&&&&&&&$$. $$$&&$&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$&&&&&$$&&&&&&$$. .$$$&&$$&&&&&&&&&$$$$&$$$&&$$$$&&$$$$$&&&&&&&&&&&&&$$$$$$$&&$$. d$$$&&$$&&&&&&&&$$$$$&&$y"' '"cC$$$$$$$$$&&$$$$$&&&&&&&$$$$&&&&. .$$$$&&$$&&&&&&&&$$$$&&&D "c$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&&. d$$$$&&$&&&&&&&&&$$$$&&&` '"c$$$$$$$$$&&$$$$$&&&&&&$$&&$$$$. $$$$$$&$&&&&&&&&&&$$&&&" '"c&&&&&&$$$$$$$$&&&$$$$$&&&&$$$. $$&&$$$&&&&&&&&$&&$&&&" '"c&&&&&&$$$$&&$$$$$$$&&&$$$$$ .$$&&$$&&&&&&&&&&$&&&$D '"c&&&&&&$$$$$$$$$$&$$$$$$: d$$&&$$&&&&&&&&&&$$$&&" '"cC&&&&&&&&&&&&$$$$$D $$$&&$$$&&&&&&&&&$$&D" "c&$$$$$$$$$&$$$$&. $$$&&$$$&&&&&&&&$$$&' "c&$&&&&&&&&$$$&&&. $$$$$$$$&&&&&&&$$$$$ :$$$&&&&&&&&$$$&&&&. $$$$$&$$&&&&&&$$$$$" '$$$$&&&&&&&&&&$$&&&. $$$$&&$$&&&&&$$$$$$ $$$$$&&&&&&&&&&$$$&&. c$$&&&&$$&&&$$$$$$$ $$$$$&&&&&&&&&&&$$$&&. $$$&&&$$&&&$$&&$$$ Y$$$$&&&&&&&&&&&$$$&&& $$$&&&&$&&$$&&$$$$ $$$$&&&&&&&&&&&&$$$&& .d$$&&&&$$&&&&&$$$$" Y$$&&&&&&&&&&&&&$$$$$ $$$$&&&&$$&&&&&$$$" "$$$$&$$$$$$$$$$$$$$D .d$$$$$&$$$&$$$&$$$" "$$$$&$$$$$$$$$$$$ : .$$$$$$$$$$&$$$$$$$" "$$$$$$$$$$$$$&" ; ..d$$$&$$$$$$$$$$$$$$$$" "&&&&$$$$$&-:. : .d$$$$$&&&$&$$$$$$$$$$$&&" Y. : . :-: : .$$$$&&&$$$$&$$$$$$$$&&&$" : : .:.:.: .d$$$&&$$$$$$$&$$$$$$$&$$$" : :- :_:_: .d$$$&&$$$$$$$$$&$$$$$&&$$$" : :.-: : d$$$$&$$$$$$$$&&&$$$$$&&&$"' : : . :.": d$$$$&$$$$$$$&&$$$$$$$$$&$" ::"_": :: d$$$$&$$$$$$&&&$$$$$$$$$$$" ::. ::-::_ $$$$&$$$$$$&&$$$$$$$$$$$$" .": . :.: -.._ $$$$$$$$$$&&$$$$$$$$$$&$" ." :'_": _: .: -..._ $$$$$$$$$$&$$$$$$$$$&&&$ : :. .:. .- _: : ".. c$$$$$$$$&$$$$$$$$&&$$$" ." : : : . --. . ". $$$$$$$&&$$$$$$&&$$$"' :---:.-.:.--:" ".." ". ; "$$$&&$$$$$&&$"' ". : : : .---": .." ". : .: """$$$$"' --"---"-:--.:" ..:-- .. : :- :.-.:.--:" ". : .-- : .-.." : :.-: . : '".:........"" :.-: :- : : :.-: : :.:.-:.-: ." : : : .".-:.-:-.: : : : : :.-:--:-..: : : : : :.-.:.-:.-." ." : : :" :.-.:.-:.-: .' : : : .'..--::.-.:.-.: : : : : : : : : : : ::.-.:.--.:.-.: `: : : .' :.-:.--.:.' `.: .' "--"
  13. int n; int valor = 10; int * ptrValor = &valor; if ( valor == *ptrValor ){ igual }else{ diferente }
  14. vangodp

    Código com Erro

    falta o using namespace std; e salvar o arquivo como .cpp porque esse código é c++
  15. acho que assim ele ta correto: #include<stdio.h> float main(void) { float n; float m; float div; printf("Digite dois números:\n"); scanf("%f e %f", &n, &m); div = n/(m); printf("resultado: %f\n", div); return 0; } a entrada deveria ser "1.0 e 3.5\n" onde \n é quando você pulsa o enter.
  16. #include<stdio.h> int main() { int n = 1000; char v[100]; sprintf (v,"%d", n ); printf("%s", v); return 0; } sprintf é igual o printf, só que o printf imprime na tela e o sprintf imprime em uma string indicada no primeiro parâmetro. E como é de supor o sscanf é a mesma coisa que scanf, só que en vez de ler do teclado lê desde uma string: #include<stdio.h> int main() { int n = 1000; char v[100] = "123456"; sscanf (v,"%d", &n ); printf("%d", n); return 0; } É muito útil para conversões.
  17. O primeiro é deixar claro que existe varias formas de se fazer isso(Limpar o buffer). Neste forum, uma vez, teve um debate muito bom sobre isso: https://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ Não so tem formas de limpar o buffer si não tem vários tips para um programador iniciante. Vai lá e da uma olhada, se tiver duvidas pergunte aqui, ou lá mesmo. Sorte. A ver si um dia desses me sinto animado e gravo um video sobre o assunto.
  18. Problema de lixo no buffer. Procure um bom tutorial de "Como limpar o buffer em C" no Google.
  19. O scanf faz a leitura de uma string até se esbarrar com alguns dos seguintes caracteres: Tabulador: '\t' Espaço: ' ' Salto de linha '\n' Se o scanf encontrar um desses caracteres anteriormente mostrados, ele vai interromper a automaticamente a leitura, permanecendo assim o restante da string no buffer a espera de outra string (Ou int, ou float, ou etc. Depende do especificador que vier no mesmo ou seguinte scanf). Com o especificador %[^\n]s você esta dizendo que o programa deve ler tudo até se esbarrar com '\n'(Salto de linha), nesse caso ele vai aceitar tudo menos o \n, ou seja ao topar com '\n' ele vai deter a leitura. Cabe destacar que o caractere ^ é como "NEGAR" o que vier a continuação, que neste caso é "negar a ler o enter", e aceitar tudo o que for o resto(incluído saltos e tabuladores). Isso certamente é devido a lixo no buffer mas como você não disponibilizou o exemplo completo não posso lhe dizer com certeza. Se quiser compartilhar o código completo talvez seja melhor lhe prestar uma ajuda de maior capacidade. De todas formas vou lhe dar os casos para saber quando você tem lixo no buffer. Tem outros scanfs anterior a esses? Leu int, chars ou qualquer outra coisa antes desse scanf que deu problema? Limpou o buffer antes de uma nova leitura? usou outras funçoes de leitura como getchar etc? Esses são os pontos que lembrei, se seu programa tem alguma dessas coisas acima você certamente tem problema de lixo no buffer. Isso se soluciona limpando o buffer. Espero que lhe sirva de ajuda.
  20. vangodp

    Formatão do Printf (

    int dia; int mes; int ano; scanf("%d/%d/%d", &dia, &mes, &ano);
  21. existe uma função chamada strstr("Palavra") que pode buscar uma palavra em uma string. Não sei si é isso que você quer
  22. vangodp

    Problemas com If e Else

    es normal... o 5.645 é um double e SB um float, se você declarar SB como double vai funcionar. Qual a soluçao? Informar para o compilador de que 5.645 trata-se de um float e não um double. Ao colocar f ao lado de 5.645 ficando "5.645f" você esta dizendo que "essa literal" tem que tomar como float, porque se você não colocar nada por default é double. if ( SB < 5.645f )... da uma olhada aqui: https://www.tutorialspoint.com/cplusplus/cpp_constants_literals.htm
  23. esse erro parece que geani não reconhecer o compilador. Instalou o compilador?
  24. vangodp

    Cin sem dado

    #include <iostream> using namespace std; int main (){ cout << "Ola" << endl; getchar(); cout << "mundo" << endl; return 0; } #include <iostream> #include <cstdlib> using namespace std; int main (){ cout << "Ola" << endl; system("pause>null"); cout << "mundo" << endl; return 0; }
×
×
  • Criar Novo...