×
Ir ao conteúdo
  • Cadastre-se

C Erro no Dev-C++ undefined reference to `get_int(char const*, ...)'


Darkmal

Posts recomendados

Uso o Dev-C++ e estou recebendo a mensagem: undefined reference to `get_int(char const*, ...)'. Gostaria de saber qual é o problema. Código abaixo:

 

#include <stdio.h>
#include <cs50.h>


<int main(void)
{
    int n;
    
    do
    {
        n = get_int("Size: ");
    }
    while (n<1);
    
    for (int i=0; i<n; i++)
    {
        printf("#\n");
    }
}


 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Darkmal Você pode ler com scanf() ou com alguma outra função, não precisa dessa cs50.h.

int n;
scanf(" %d%*c", &n);

Se scanf() leu e gravou direito, deve retornar 1 nesse caso.

A função retorna 0 se não leu nada, e -1 em caso de erro.

Melhor seria:

int ch;
int n;
printf("Digite o valor: ");
while(scanf("%d", &n) < 1) {
    // Lendo o que resta no fluxo
    while((ch = fgetc(stdin)) != '\n' && ch != EOF);
    // Informando o problema
    printf("Entrada invalida!\nDigite o valor: ");
}
while((ch = fgetc(stdin)) != '\n' && ch != EOF);
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Obrigado, Lucca, pela resposta! Então, o que quero é que o símbolo '#' apareça no display, mas com o código que fez dá erro se eu digitar #. Gostaria de resolver o problema do 'get_int' não ser aceito nesse código com o Dev-C++. Mesmo assim valeu pela força!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Darkmal

9 minutos atrás, Darkmal disse:

o que quero é que o símbolo '#' apareça no display

Você já está fazendo isso:

3 horas atrás, Darkmal disse:
    for (int i=0; i<n; i++)
    {
        printf("#\n");
    }

 

9 minutos atrás, Darkmal disse:

com o código que fez dá erro se eu digitar #

Ainda bem, porque # não é um valor inteiro, então o usuário deveria ser alertado mesmo...

image.png.369bc26b88a4a29f92861b77160f0b55.png

O que pretende fazer afinal?

 

9 minutos atrás, Darkmal disse:

Gostaria de resolver o problema do 'get_int' não ser aceito nesse código

Por que? 🤪

cs50.h não faz parte da biblioteca padrão do C.

O comum é usar scanf().

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Então o erro deve-se pelo fato de o cs50.h não fazer parte da biblioteca padrão do C. Copiei esse código do curso de Harvard. O professor usa o VScode online.

Essa é a primeira parte de um exercício para criar uma matriz.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Darkmal Se você tem essa tal cs50.h, nada custa abrir e ver o tem por lá, procure essa tal get_int().

De qualquer forma é melhor pra você aprender a usar as funções da biblioteca padrão mesmo.

 

21 minutos atrás, Darkmal disse:

o código que fez dá erro se eu digitar #

O código pede um inteiro e imprime #, não o oposto 🤪

 

10 minutos atrás, Darkmal disse:

Essa é a primeira parte de um exercício para criar uma matriz.

int mat[4][4];

Matriz criada :D

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Agora fiz como aconselhou no começo, usei scanf.

#include <stdio.h>

int main(void)
{
	int n;
	
	do
	{
		printf("Size: ");
		scanf("%d", &n);
	}
	while (n<1);
	
	for (int i=0; i<n; i++)
	{
		printf("#\n");
	}
}

 

Valeu!

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Darkmal Como @Lucca Rodrigues comentou é melhor usar as bibliotecas padrão do C.

 

Mas se está fazendo um curso e ele usa essa biblioteca, acho que devia tentar resolver isso para conseguir compilar os códigos como é mostrado nas aulas.

 

Se instalou a blibioteca usada nos exemplos, terá que fazer o link -lcs50. Em cs50.harvard.edu é explicado como compilar via linha de comando com o clang,

 

If we wanted to use CS50’s library, via #include <cs50.h>, we also have to add a flag: clang -o hello hello.c -lcs50:

 

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

@Midori , bom dia. Obrigado pela atenção!

Tentei aplicar clang -o hello hello.c -lcs50 usando o VScode instalado no meu pc, mas não deu certo. Gostaria de usar o VScode instalado no pc como é implementado no curso(versão online). Se tiver alguma dica, já agradeço antecipadamente. Abraço!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 01/02/2022 às 23:50, Darkmal disse:

@Felipecfk Boa noite, Felipe.

Qual você recomenda? Grato!

-Visual Studio (comunity é gratuito)

-Visual Studio Code (pode levar um tempo pra configurar tudo certinho mas é bom)

-CLion (ele é pago mas acho que tem uma versão gratuita).

 

Fuja de code blocks, dev c++, etc. Eles são bugados e vão dar erro quando não é pra dar, aí você vai achar que fez algo errado e no fim das contas não era bem assim.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Em 27/01/2022 às 18:33, Lucca Rodrigues disse:

ou com alguma outra função, não precisa dessa cs50.h

 

@Lucca RodriguesCS50 é um curso de uma escola, Harvard. Computer Science 50.

 

Então o autor não precisa de cs50.h....  Mas precisa. Na aula seguinte vai ter outro problema igualzinho se pretender seguir o curso.

 

@Darkmalleu as instruções do curso? O manual ao menos em https://manual.cs50.io/ 🤔 Tentou o download de https://github.com/cs50/libcs50 🤔

 

 

Talvez devesse ler melhor as instruções. 

 

Citação

The on-campus version of CS50x , CS50, is Harvard's largest course.

 

Esse é o CS50. O curso de introdução à ciência da computação na graduação da universidade de Harvard. A versão on-line, CS50x, pode ser seguida grátis ou assistida por $149

Acho que o curso adota o IDE Visual Studio Code da Microsoft. Talvez você pudesse ir na onda, @Darkmal

 

Se insistir em Dev-C++ ao menos atualize o compilador para uma versão mais moderna, 9 ao menos.

 

  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Como ganhar dinheiro montando computadores!

MINICURSO GRÁTIS!

Como ganhar dinheiro montando computadores!

CLIQUE AQUI E INSCREVA-SE AGORA MESMO!