Porque certo programa no Dev-C++ não roda no codeblocks?
Se você não passar nenhum detalhe, ninguém vai adivinhar o que você está fazendo.
Que programa é esse?
Qual o erro que você está recebendo?
Esse programa não roda direito no codeblocks:
#include <stdio.h>
int main(){
char s[50];
printf("Digite algo(scanf convencional):\n");
scanf("%s",s);
fflush(stdin);
printf("Resultado:%s\n\n",s);
printf("Digite algo(scanf aprimorado):\n");
scanf("#50[^\n]s",s);
fflush(stdin);
printf("Resultado:%s\n\n",s);
}
Ele pula o scanf aprimorado no codeblocks.Disseram o seguinte:
CodeBlocks e DevC++ podem usar versões diferentes do compilador.
No seu outro tópico de ontem já explicamos como corrigir esse código:
Talvez esteja na hora de parar de ignorar as respostas que lhe são passadas.
Pôxa, você já havia postado esse erro e você recebeu respostas bem detalhadas neste tópico.
Me desculpem,é que eu esqueço o titulo da postagem nesse fórum,pois eu participo de vários foruns.Isso confunde a minha cabeça que é fraca,e eu esqueço de pesquisar o que eu já fiz.
Ele não roda no codeblocks,porque os compiladores do codeblocks e do Dev-c++ são diferentes neh?
Conforme o colega @hugokotsubo já explicou,
não funciona porque no segundo scanf, o especificador de formato deve começar com %, e não #.
Sim,eu entendi e coloquei o % no código,o código ficou assim:
#include <stdio.h>
int main(){
char s[50];
printf("Digite algo(scanf convencional):\n");
scanf("%s",s);
fflush(stdin);
printf("Resultado:%s\n\n",s);
printf("Digite algo(scanf aprimorado):\n");
scanf("%50[^\n]s",s);
fflush(stdin);
printf("Resultado:%s\n\n",s);
}
Mas não adianta o programa no codeblocks ainda pula o scanf aprimorado,portanto de nada adiantou.
Por favor, da próxima vez que indicarmos um link, leia tudo.
No caso, o link (que é o mesmo que já indicamos acima) é esse.
Lá explica tudo, não só o problema no scanf
, como também o caso do fflush(stdin)
, que não é um código portável (não é garantido que funcione corretamente em todos os ambientes, como deu pra perceber). E no link já citado também tem uma alternativa para resolver isso.
Eu entendi mais ou menos,sei que o programa correto é esse que tu fez que é esse:
void clearBuffer(FILE *fp) {
int c;
while ((c = fgetc(fp)) != EOF && c != '\n');
}
int main() {
char s[50];
printf("Digite algo(scanf convencional):\n");
scanf("%s", s);
printf("Resultado:%s\n\n", s);
clearBuffer(stdin);
printf("Digite algo(scanf aprimorado):\n");
scanf("%50[^\n]s", s);
printf("Resultado:%s\n\n", s);
return 0;
}
Mas eu executei no codeblocks e deu erro na linha 1 onde está a palavra FILE do ClearBuffer:Veja na foto:
A mensagem de erro é muito clara, faltou colocar no início:
#include <stdio.h>
Executou certinho o programa agora:Veja na foto:
Me desculpem,se as vezes eu não entendo,é que é muita informação para minha cabecinha,que é fraca por sinal.
Prezado, pare de se vitimizar, se você ler as respostas com calma e atenção vai dar certo, não fique se afobando.
Só uma última dica. O DevCpp é uma ferramenta muitíssimo antiga, que usa uma versão pré-histórica do compilador C. A última versão dele é de 2015, mas já é baseada em um código que deve ter mais de 20 anos.
Muita coisa feita no CodeBlocks não vai funcionar nele. O ideal seria não utiliza-lo mesmo.
Não entendi,é para não usar o Dev-C++ ou para não usar o Codeblocks?
Não use o DevC++. É velho e defasado.
Prefira usar o CodeBlocks.
Abraço.
Sim,o codeblocks eu uso porque gosto de Linux,mas na epoca que eu usava parece que o Dev-C++ só funcionava na versão 2016,as mais atuais vem bugada.
Melhor mesmo seria usar uma IDE mais nova, como:
- CLion
- QT Creator
- Visual Studio (pode ser o Code)
Para quem disser que o VS Code não é IDE… bem, ele é mais IDE do que o CodeBlocks e o DevCpp.
Adotei o VS Code esse ano como IDE para C nas minhas aulas de algoritmos e como ferramenta do início da disciplina em Programação Orientada a Objetos. Funciona muito bem. Para Java eu particularmente ainda prefiro o NetBeans quando começamos a lidar com projetinhos maiores, com mais arquivos, organização em pacotes, GUI etc. É menos burocrático que o IntelliJ e ABSURDAMENTE mais estável que o Eclipse, que da MUITO pau.
Sinceramente, para o PO, acho melhor ficar no Dev ou no Code::Blocks mesmo. Eles já vem com o compilador pré-configurado e é só programar. Se tiver que instalar alguma runtime, configurar etc. não vai dar muito certo. Se bem que, agora pensando rapidamente, o PO está trabalhando em ambiente Linux que já vem com o compilador pronto pra usar na maioria das distribuições. Basta instalar o VS Code e algumas extensões…