Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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
Postado

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
Postado

@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
Postado

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
Postado

@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
Postado

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
Postado

@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
Postado

@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
Postado
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
Postado
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

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...