-
Total de itens
884 -
Registro em
-
Última visita
Tudo que vangodp postou
-
Entendo... porem he de dizer que isto não é possível, pois o sizeof vai lhe retornar, no main, o tamanho completo do vetor, porem em outras funções você vai obter somente o tamanho do ponteiro a char, teria de ser feito por você dita função, pois não existe, ou simplesmente ignoro sua existência. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> void func( char* variavel ){ if( stricmp ("char", variavel) == 0 ){ printf("O tamanho do char é %d byte.\n", sizeof(char)); }else if( stricmp ("int", variavel) == 0 ){ printf("O tamanho do int é %d bytes.\n", sizeof(int)); }else{ printf("O tipo de dado não existe ou simplesmente não foi implementado ainda.\n"); }//... return; } int main() { setlocale(LC_ALL, ""); func("int"); func("char"); func("Banana"); return 0; }
-
Como você mesmo falou, para saber o tamanho que ocupa basta fazer: int tamanho = sizeof (char); Para saber quanto tamanho ocupa é facil.... se você declarou char texto[6] é só multiplicar tamanho por 6(tamanho*6). Por outro lado se o que você quer é saber quantas letras tem num string é só usar strlen. Lá você pode ver um exemplo.
-
Simples - Função lê número mal num ficheiro binário
pergunta respondeu ao AccioOnion de vangodp em C, C++
Tenho umas perguntas que fazer antes de poder lhe ajudar. 1º O texto foi gerado por vc? 2º você possui o programa que gerou o arquivo? 3º Poderia postar o programa? 4º Seria possível compartilhar o arquivo binário também? 5º Em que sistema operativo foi gerado o arquivo? O arquivo foi gerado no mesmo computador? Certamente o problema seja a causa do "alinhamento dos bytes" ou também conhecido como "byte aligne", e também o preenchimento de espaços(space padding), algo não transparente ao programador, mas algo que é levado a cabo pelos compiladores, digamos que a modo de otimização da velocidade na qual o programa se executa, mas sem essas informações não posso lhe dizer com 100% de precisão se o problema é esse. Se quiser aprender sobre o tema de uma olhada aqui: https://0xc0de.wordpress.com/2008/10/31/alinhamento-alignment-e-preenchimento-padding/ Também poderia ser problema de bigendian ou litleendian se os dados foram gerados em outro computador, pois em diferentes sistemas operativos, a ordem dos bits muda. Em um computador a letra 'P' por exemplo poderia ser em binário 0101 0000, e em outro 0000 1010, o que quer dizer que está ao contrario um do outro evidentemente, por outro lado o computador ao receber os bits trocados, pode não saber interpretar bem os dados. Mas como falei depende das perguntas que fiz acima. -
você pode usar um laços para ir restando, tipo 10 dividido por 3, seria pegar o 10 e ir restando de 3 em 3, e assim sucessivamente, até que o dividendo seja menor que o divisor. Para saber o resultado você deve usar um contador para saber quantas vezes o processo se repetiu. E a sobra é o próprio dividendo uma vez feita a operação de resta. Se buscar pode até encontrar códigos de exemplo pelo google e até formulas mais efetivas.
-
Como armazenar a hora e o minuto do sistema em variáveis em C.
pergunta respondeu ao Matheus Marques de vangodp em C, C++
A resposta é usar a estrutura chamada "struct tm" que pertence a biblioteca time.h. -
vai no google e busque o seguinte: "Arquivos de cabeçalho linguagem C" Pulse vídeos e veja uns quantos. Aqui uma boa lista. E aqui deixo um vídeo:
- 1 resposta
-
- funçao
- linguagemc
-
(e %d mais)
Tags:
-
Use system("Clean") o algo assim o Clean é que não estou muito seguro se é "clean" ou "cls", prove diferentes formas. Talvez faça falta declarar alguma biblioteca como stdlib.h. Não costumo programar em linux porem muito complicado não é de encontrar esses comandos no google. Outro truque para borrar a tela é imprimir uns 100 saltos de linha até as letras se perderem pra cima. >_< Talvez faça falta declarar alguma biblioteca como stdlib.h. Não costumo programar em linux porem muito complicado não é de encontrar esses comandos no google. Outro truque para borrar a tela é imprimir uns 100 saltos de linha até as letras se perderem pra cima. >_<
- 2 respostas
-
Em C tudo o que for ser usado deve haver sido declarado previamente, mais que nada, porque isso implica reserva de espaços na memória, se algo não foi declarado, quer dizer que não há espaço em memória, pelo qual não pode ser armazenado nada se não há espaço reservado. Um dos problemas frequentes no seu programa é que você faz a chamada a varias funções que estão implementadas DEPOIS de main, o programa procura antes de main se a função existe, como não existe o programa gera esses erros do tipo warning: implicit declaration of function.... Para o programa é a primeira vez que ele está vendo essa função, então ele toma como se você tivesse declarando a função e não que você está invocando ela. Esse problema você resolve declarando os protótipos das funções que estiverem depois de main, antes de main ou de serem chamadas em outras funções. Outros erros são receber estruturas por referencia e depois tentar acessar aos membros de forma minhastruct.membro quando deveria usar o operador seletor de campo da seguinte forma minhastruct->membro pois trata-se de ponteiro a struct. Revisar capitulo sobre estruturas por referencias. Também observo que você esqueceu de fechar algumas chaves nos if-else que estão aninhados dentro do switch em main: Arrume esses erros e volte aqui se perseguir o problema.
-
use o botão <> para postar o seu código e aumentar as chances de obter ajuda.
-
Use o botão <> para postar o seu código, agilizará a obtenção de ajuda.
-
você esta deixando um espaço nos scanfs. No printf um espaço significa isso.... um espaço, porem no scanf quer dizer que você está ignorando a leitura de um caractere o algo pelo estilo. Retire os espaços dos scanfs.
-
Tanto como estragar o computador não acredito, nunca ouvi falar. O que pode acontecer é que você cometa um erro e reescreva por azar a uma parte com dados importantes para o correto funcionamento do sistema, e quando você apagar o sistema, esses dados "corruptos" tenham ido a parar no disco, e posteriormente ao reiniciar o sistema pode acontecer que o sistema tente carregar esses dados e não funcione corretamente. Mas fique tranquilo, fritar o computador com C não é possível, como máximo você se veria obrigado a reinstalar o sistema operativo, caso não fosse possível restaurá-lo. Lhe aconselho que não fique provando sorte com o código, faça-o com convicção. Procure entender bem o tema de ponteiros, é certamente dos temas mais complexos, mas ao mesmo tempo a potencia da utilização dos ponteiros é imensa. você acha que se fosse tão complicado assim viveríamos todos sem computador aqui. hahaha Volte a perguntar para seu professor o que não compreender, não prossiga ao próximo tema com duvidas no anterior. ;)
-
Reformule a pergunta...
-
Pois deverás estudar mais sobre ponteiros. O que você ta fazendo é como sair de caça sem saber disparar a arma shuehushe. Que é que não entende dos ponteiros?
-
Por que quando vou invocar a função chamando um vetor eu não preciso usar [] ?
pergunta respondeu ao lnfernandobr de vangodp em Grupo de Estudos
exato prove isso: printf("%d", original); printf("%d", &original[0]); É a mesma coisa... isso é o que recebe a função prove isso: printf("%d", original); printf("%d", &original[0]); É a mesma coisa... isso é o que recebe a função A efeitos void recebe(int original[] ) é a mesma coisa que void recebe(int * original ) Por isso você só deve passar a direção do primeiro elemento. Ou outro qualquer recebe(&original[10]) por exemplo A efeitos void recebe(int original[] ) é a mesma coisa que void recebe(int * original ) Por isso você só deve passar a direção do primeiro elemento. Ou outro qualquer recebe(&original[10]) por exemplo -
Por que quando vou invocar a função chamando um vetor eu não preciso usar [] ?
pergunta respondeu ao lnfernandobr de vangodp em Grupo de Estudos
você sabe que é um array? Um array nada mais é que um conjunto de dados de um mesmo tipo alojado na memoria do computador apontado por um ponteiro na sua primeira casa. você tem que prestar atenção na parte apontado por um ponteiro e na sua primeira casa. A efeitos original é a mesma coisa que &original[0]... um ponteiro que aponta para a primeira casa do vetor(origina[0]). Imagine isso que fosse possível fazer algo como: int original[DIM]; int * original = &original[0]; Que falha aí? Que as 2 variáveis são iguais!! Mas a efeitos é isso mesmo. A palavra original sem [ nem ] tem o mesmo efeito que original[0] e com o & extraímos a direção da primeira casa do vetor. Por isso da igual você mandar original ou &original[0] é a mesma coisa. Quando estudar ponteiros você entenderá melhor. -
Seu problema é que você tem lixo no buffer. Procure algum video ou articulo de "Como limpar o buffer em C".
-
int inteiro; sscanf(str, "%d", inteiro);
-
Vetor x de inteiros que exiba a quantidade de valores pares em x
pergunta respondeu ao Nathalie Takeda de vangodp em C, C++
para imprimir os pares faça dentro de um for: if (vetor % 2 == 0) printf("%d", vetor); todo valor que é dividido por 2 e sobrar zero é par -
std::getline (std::cin,nome); http://www.cplusplus.com/reference/string/string/getline/ http://www.cplusplus.com/reference/string/string/getline/
-
Qual sua duvida?
-
Comparação entre duas datas no C++
pergunta respondeu ao Maristela Fialho de vangodp em Tutoriais & Dicas - C, C++
Para carregar o arquivo de forma mais ou menos correta deveria ser feito isso: #include <iostream> #include <fstream> #include <string> using namespace std; struct Data{ int dia, mes, ano; }; int main () { ifstream fin; fin.open("entrada.txt", std::ifstream::in); if( !fin.is_open() ){ return 1; } const int MAXDATA = 2; Data d[MAXDATA]; char lixo; for (int i = 0; i < MAXDATA ; i++) { fin >> d[i].dia >> lixo >> d[i].mes >> lixo >> d[i].ano; cout << d[i].dia << '/' << d[i].mes << '/' << d[i].ano << endl; } return 0; } Logo depois usar o processo inverso para gravar o arquivo. -
Comparação entre duas datas no C++
pergunta respondeu ao Maristela Fialho de vangodp em Tutoriais & Dicas - C, C++
ok ficou claro. Procure sempre postar o enunciado isso lhe evitará perder tempo. Um momento vou dar uma olhada. -
Comparação entre duas datas no C++
pergunta respondeu ao Maristela Fialho de vangodp em Tutoriais & Dicas - C, C++
Qual o objetivo do seu programa? Comparar em que sentido? Tipo enviar a data mais antiga para o arquivo d saída? Algo assim?