-
Posts
1.752 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por vangodp
-
-
entendi... Pera ai que vou fazer um test
adicionado 15 minutos depoisO salário você precisaria calcular ele antes de mandar para o arquivo?
adicionado 16 minutos depoisPor exemplo Docente recebe 2500$ por cada hora. Quando o programa pedi o salário isso deveria ser calculado antes de mandar valor algum para o arquivo.
adicionado 19 minutos depoisSpoileradicionado 26 minutos depois3 horas atrás, Andrah disse:1. Escreva uma função, que insira dados de N funcionários da Universidade Cabo Verde e envia-los para ficheiro como o nome
Esses dados como salário, acho que pode omitir... porque isso pode ser calculado na hora de mostrar... tipo se trabalha 8 horas por dia multiplica por 30 e dai sai salário...(falo de forma simplificada para ter uma ideia).
No seu programa você pode por
float horaDocente = 2500;
dai na hora de imprimir pode ser
salario = funcionario.horasTrabalhadas * 30;adicionado 31 minutos depoisSeu programa tem alguns outros erros que acho que é critico. Por exemplo...
struct Funcionario* p = ( struct Funcionario * ) malloc ( sizeof ( struct Funcionario ) );
aqui você ta reservando 1 só elemento do tamanho de 1 struct Funcionario. Se o que você quer é um array de Funcionarios o correto seria
struct Funcionario* p = ( struct Funcionario * ) malloc ( sizeof ( struct Funcionario ) * X );
Onde o X é o numero de elementos do array.adicionado 36 minutos depoisE outro problema maior ainda é que ao chamar a função
menu ( funcionario, n ); você passa um n que nem deu valor inicial... logo escolhemos 1 no menu e repassamos esse n para IncerirFuncionario, porém sem um valor definido. Esse valor n depois é usado para int y que somado a i você usa para o limite do for mais abaixo for ( i = 0; i < y; i++ )... <---Qual o valor desse y????
adicionado 37 minutos depoisrealmente você precisa que seu programa leia um array??? Acho que dava para fazer sem arrays sei lá.
- 1
-
qual problema você tem?
-
1 minuto atrás, isrnick disse:
se você entende o que a função faz, também entende em que situação deve usar e quando não,
Eu sei... mas ela não está livre de erros também. Acho que n existe nada infalivel. Sei lá... essa também era minha forma idônea, até que vi o vídeo. heheh
Desde logo o que uso sempre é %*c... nunca me falhou. Acho que a melhor forma é uma combinação de coisas. Um dia eu afino heheh
- 1
-
27 minutos atrás, isrnick disse:
@vangodp Você definiu char buffer com tamanho 100, mas deveria usar a constante BUFSIZ que é o tamanho ótimo de buffer estimado para um arquivo I/O.
Sinta-se livre de modificar/melhorar como quiser... se quiser aportar algo será muito bem vindo. Talvez sejamos capazes de buscar uma solução para o maldito buffer de uma vez por todas sheusheush
27 minutos atrás, isrnick disse:Usar a função setbuf(stream, buffer) é uma abreviação de usar setvbuf(stream, buffer, _IOFBF, BUFSIZ) , note que já é assumido o tamanho BUFSIZ para o buffer, se quiser usar um buffer com tamanho diferente terá que usar a função setvbuf() diretamente alterando o último parâmetro, ao invés de setbuf().
Eu não uso essa função.. somente queria que você observara o que passa se por essa flush sua antes do imput. Eu também uso ela algumas vezes.
adicionado 1 minuto depoisEu n falei que o modo de limpar o buffer nesse video fosse o mais indicado, mas ele encontrou um caso que pode dar falho.
adicionado 13 minutos depoisproponho:
#include <stdio.h> #include <stdarg.h> void miscanf ( const char *format, ... ) { char buffer[BUFSIZ]; fgets ( buffer, 100, stdin ); va_list args; va_start ( args, format ); vsscanf ( buffer, format, args ); va_end ( args ); } int main() { char str1[100]; char str2[100]; miscanf("%s", str1); /*Ler palavras */ miscanf("%[^\n]%*c", str2);/*Ler frases(espaços)*/ printf("%s\n", str1); printf("%s\n", str2); return 0; }
adicionado 17 minutos depoisfunção 100% livre de problemas de entrada... Se tomar o conselho de declarar char buffer[100] tal como @isrnick falou
char buffer[BUFSIZ];
melhor ainda shuehseu. E se alguém quiser melhorar mais ainda seja bem vindo.
- 1
-
4 minutos atrás, Andrah disse:
Teria sim eu entende o que você me explicou
Espero que sim... de toda forma indiquei uma leitura. E sempre é bom ver o ponto de vista de outros usuários.
adicionado 6 minutos depoisQuerem saber qual é a forma mais idonea de ler o buffer para mim?
#include <stdio.h> int main(){ char string[100]; char buffer[100]; fgets(buffer,100,stdin); sscanf(buffer,"%s",string); printf("Cadena: %s",string); return 0; }
Um exemplo:
//fgets+sscanf #include <stdio.h> int main(){ char buffer[100]; char palavra[100]; int n; char frase[100]; fgets(buffer,100,stdin); sscanf(buffer,"%s",palavra); fgets(buffer,100,stdin); sscanf(buffer,"%d", &n); fgets(buffer,100,stdin); sscanf(buffer,"%[^\n]", frase); printf("%s\n%d\n%s\n\n", palavra, n, frase); return 0; }
Pode incluso ser montado alguma função com isso se quiser facilitar.
adicionado 7 minutos depoisEm fim... é só uma a mais de tantas hehehe.
- 1
-
você é um cara bem estudado, entende bem das coisas, como funcionam de forma interna etc. Tem uma boa escritura, é alguém bem indicado para explicar essas coisas. Em troca eu n sirvo para isso... sou bem o contrario heheh
- 1
-
4 minutos atrás, arfneto disse:
que mostra o que tem no buffer da console ANTES de você ler, ou pergunte e tento mostrar um exemplo melhor.
Eu não tenho problemas com buffer... Quem precisa é @Andrah Sinta-se livre de fazer um bonito tutorial desses que você tem paciência para fazer... Ja que você entrou em tecnicismos agora n vai ficar no meio n é?
adicionado 0 minutos depoisIsso pode ajudar a muita gente, e de passo, talvez, seja possivel aprender algo novo hoje.
adicionado 1 minuto depoisE uma coisa... \n no buffer para mim é lixo, diga o que diga.
- 1
- 1
-
até que você aprenda a limpar o buffer corretamente ponha um fflush antes de ler qualquer string
adicionado 0 minutos depoisfflush ( stdin );
scanf ( "%s%*c", funcionario.categoria );adicionado 2 minutos depoisMas realmente sou totalmente contra de fflush, e nunca recomendo isso. Termine seu programa e depois tente usar qualquer outra forma... você ja viu que alguns companheiros indicaram algumas formas, e qualquer delas é melhor que fflush. Se seu professor está recomendando isso talvez não seja um bom tutor.
- 1
-
- 1
-
Ainda estou dando uma olhada.
adicionado 0 minutos depoismas se conseguiu limpar o buffer ao menos tomar os dados e criar o arquivo você ja deve ter conseguido
- 1
-
limpar limpa mas ninguem deveria usala:
aqui tem um amplo tema que foi debatido uma vez com conselhos de varios usuarios de outro forum. https://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/São conselhos para iniciantes, acho que você deveria dar uma olhada.
adicionado 0 minutos depoisDe momento você pode usar o fflush mas quanto antes você deixa-lo melhor.
- 1
- 1
-
//bibliotecas #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> #include <conio.h> #include <time.h> //Dados do funcionário struct Funcionario { char nome[20]; int NIF; char categoria[20]; float salario; int Hora_Trabalhados; }; // Para não atrapalhar o bom funcionamento void menu ( struct Funcionario funcionario[], int n ); void pressioneEnter() { char c; do { c = getch(); } while ( c != 13 ); } void IncerirFuncionario ( struct Funcionario funcionario[], int n ) { system ( "COLOR 0F" ); FILE *file; // cria variável ponteiro para o arquivo file = fopen ( "funcionarios.txt", "w" ); //abrindo o arquivo if ( file == NULL ) //testando se o arquivo foi realmente criado printf ( "\n-->Nao foi possivel abrir o fecheiro\n\n" ); else { printf ( "\n\n\n\n\tUNICV \n\n" ); printf ( "\n\n\n\t\tDigite o numero de Funcionarios que pretende registrar: " ); scanf ( "%i", &n ); fflush ( stdin ); system ( "cls" ); static int i = 0; int y = n + i; if ( y > 99 ) menu ( funcionario, n ); printf ( "\n\n\n\t\t-------- INSCRIÇÃO DE FUNCIONÁRIO --------\n\n" ); fprintf ( file, "\n\n\t----- LISTA DOS FUNCIONÁRIOS ----\n\n" ); fprintf ( file, "\tNome NIF Salário Categoria Horas\n\n" ); for ( ; i < y; i++ ) { system ( "COLOR 0B" ); // para obter dados e armazenar no arquivo printf ( "\n\tDigite o nome do funcionário: " ); scanf ( " %s", funcionario[i].nome ); printf ( "\n\tDigite o NIF do funcionário: " ); scanf ( "%d", &funcionario[i].NIF ); printf ( "\n\tDigite o salario do funcionario: " ); scanf ( "%f", &funcionario[i].salario ); printf ( "\n\tDigite a categoria do funcionário: " ); scanf ( " %s", funcionario[i].categoria ); printf ( "\n\tDigite a Hora trabalhados pelo funcionário: " ); scanf ( "%d", &funcionario[i].Hora_Trabalhados ); printf ( "\n\n" ); //A Escrevendo no arquivo fprintf ( file, "\t%s \t %d \t %.1f \t %s\t %d\n", funcionario[i].nome, funcionario[i].NIF, funcionario[i].salario, funcionario[i].categoria, funcionario[i].Hora_Trabalhados ); } printf ( "\n\t\t-------------------------<3--------------------------\n" ); printf ( "\n\t Incritos com sucesso! \n\n\t Registado no fecheiro -> funcionarios.txt\n\n" ); printf ( "\n\n\n\t\t\tPressione ENTER para Continuar->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); menu ( funcionario, y ); } fclose ( file ); // para fechar o arquivo } void ImprimirFuncionarios ( struct Funcionario funcionario[], int n ) { FILE *file; file = fopen ( "C:\\Users\\alex\\Desktop\\teste4\\funcionarios.txt", "r" ); if ( file == NULL ) printf ( "\n-->Nao foi possivel abrir o fecheiro\n\n" ); else { int i; printf ( "\n\n\n\t\t------- LISTA DOS FUNCIONÁRIOS ------\n\n" ); for ( i = 0; i < n; i++ ) { system ( "COLOR 0F" ); fscanf ( file, "%s", funcionario[i].nome ); fscanf ( file, "%d", &funcionario[i].NIF ); fscanf ( file, "%f", &funcionario[i].salario ); fscanf ( file, "%s", funcionario[i].categoria ); fscanf ( file, "%d horas", &funcionario[i].Hora_Trabalhados ); printf ( "\n\tNome: %s", funcionario[i].nome ); printf ( "\n\tNIF: %d", funcionario[i].NIF ); printf ( "\n\tSalario: %.1f $00", funcionario[i].salario ); printf ( "\n\tCategoria: %s", funcionario[i].categoria ); printf ( "\n\tHoras de trabalho: %d horas", funcionario[i].Hora_Trabalhados ); printf ( "\n\n----------------------------------------------------------\n" ); } } printf ( "\n\n\n\t\t\tPressione ENTER para Continuar->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); fclose ( file ); } void OrdenarFuncionario ( struct Funcionario *funcionario, int n ) { int i, j; struct Funcionario aux; for ( i = 1; i < n; i++ ) { aux = funcionario[i] ; for ( j = i; ( j > 0 ) && ( aux.salario < funcionario[j - 1].salario ); j-- ) { funcionario[j] = funcionario[j - 1]; funcionario[j] = aux; } } printf ( "\n\n\n\t------- LISTA DOS FUNCIONÁRIOS POR ORDEM CRESCENTE ------\n\n" ); for ( i = 0; i < n; i++ ) { printf ( "\n\tNome: %s", funcionario[i].nome ); printf ( "\n\tNIF: %d", funcionario[i].NIF ); printf ( "\n\tSalario: %.1f $00", funcionario[i].salario ); printf ( "\n\tCategoria: %s", funcionario[i].categoria ); printf ( "\n\tHoras de trabalho: %d horas", funcionario[i].Hora_Trabalhados ); printf ( "\n\n----------------------------------------------------------\n" ); } printf ( "\n\n\n\t\t\tPressione ENTER para Continuar->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); } void EliminarFuncionario ( struct Funcionario funcionario[], int n ) { FILE *file; //Abre o arquivo novamente para leitura file = fopen ( "funcionarios.txt", "r+" ); if ( file == NULL ) printf ( "\n-->Nao foi possivel abrir o fecheiro\n\n" ); else { int nif, i=0; char resp; printf ( "\n\tInforme o NIF do funcionario a ser Eliminado: " ); scanf ( "%d", &nif ); while ( funcionario[i].NIF == nif ) { //if ( funcionario[i].ativo== 1 ) { printf ( "\n\tNome: %s", funcionario[i].nome ); printf ( "\n\tNIF: %d", funcionario[i].NIF ); printf ( "\n\tSalario: %.1f $00", funcionario[i].salario ); printf ( "\n\tCategoria: %s", funcionario[i].categoria ); printf ( "\n\tHoras de trabalho: %d horas", funcionario[i].Hora_Trabalhados ); printf ( "\n\n----------------------------------------------------------\n" ); // } printf ( "\n\tDeseja realmente eliminar o Funcionário? S/N:" ); scanf ( "%c", &resp ); if ( ( resp == 'S' ) || ( resp == 's' ) ) { // funcionario[i].ativo=0; printf ( "\n\tFuncionário eliminado com sucesso\n" ); break; } else { if ( ( resp == 'N' ) || ( resp == 'n' ) ) { printf ( "\tEliminação cancelada!\n" ); break; } } } i++; if ( i > 99 ) printf ( "\n\n\t\tNIF não encontrado\n" ); } fclose ( file ); printf ( "\n\n\n\t\t\tPressione ENTER para Continuar->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); } void menu ( struct Funcionario funcionario[], int n ) { int op; do { system ( "COLOR 0F" ); //Menu printf ( "\n\n\t\t\t\t---> SISTEMA DE REGISTO E CONTROLE DE FUNCIONÁRIO \n\n" ); printf ( "\n\t\t* 1 ------- INSERIR OS FUNCIONÁRIOS E ENVIA-LOS PARA O FICHEIRO ------------------------ *\n" ); printf ( "\n\t\t* 2 ------- IMPRIMIR A LISTA DOS FUNCIONÁRIOS DO FICHEIRO ------------------------------ *\n" ); printf ( "\n\t\t* 3 ------- IMPRIMIR OS FUNCIONÁRIOS POR CATEGORIA ------------------------------------- *\n" ); printf ( "\n\t\t* 4 ------- GASTO DA UNIVERSIDADE COM OS FUNCIONÁRIOS ---------------------------------- *\n" ); printf ( "\n\t\t* 5 ------- CALCULAR O SALÁRIO DE UM FUNCIONÁRIO X EM FUNÇÃO DO SEU SALÁRIO POR HORA --- *\n" ); printf ( "\n\t\t* 6 ------- ORDENAR FUNCIONÁRIO NA ORDEM CRESCENTE ------------------------------------- *\n" ); printf ( "\n\t\t* 7 ------- IMPRIMIR OS FUNCIONÁRIOS COM SALÁRIO MAIOR QUE 75000$ ---------------------- *\n" ); printf ( "\n\t\t* 8 ------- ELIMINAR UM FUNCIONÁRIO A PARTIR DO Nº DO NIF ------------------------------ *\n" ); printf ( "\n\t\t* 0 ------- Sair\n\n" ); printf ( "\n\tEscolha uma opcao: " ); scanf ( "%d", &op ); printf ( "\n" ); switch ( op ) { case 0: printf ( "\t\t\t\t\t\t\t\t\t\t-> Saindo... \n" ); printf ( "\tPressione ENTER para Sair->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); break; case 1: system ( "cls" ); IncerirFuncionario ( funcionario, n ); break; case 2: system ( "cls" ); ImprimirFuncionarios ( funcionario, n ); break; case 6: system ( "cls" ); OrdenarFuncionario ( funcionario, n ); break; case 8: system ( "cls" ); EliminarFuncionario ( funcionario, n ); break; default: system ( "COLOR C0" ); printf ( "\n\t\t\t\t*-*-*-*-- ERRO --> Numero INVALIDO!\n\n" ); printf ( "\n\tPressione ENTER para Tentar Novamente->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); } } while ( op != 0 ); } int main() { setlocale ( LC_ALL, "Portuguese" ); struct Funcionario funcionario[100]; int n; struct Funcionario* p = ( struct Funcionario * ) malloc ( sizeof ( struct Funcionario ) ); if ( p == NULL ) { printf ( "\n\t ERRO MEMÓRIA INSUFICIENTE!\n" ); exit ( 1 ); //Terminar o programa } system ( "COLOR F0" ); //Abertura do programa printf ( "\n\n\n\n\n\t\t\t....................................................................\n" ); printf ( "\n\t\t\t\t----> SISTEMA DE REGISTO E CONTROLE DE FUNCIONÁRIO \n" ); printf ( "\n\t\t\t.....................................................................\n\n\n\n\n" ); printf ( "\n\t\t\t UNICV \n\n" ); printf ( "\n\tPressione ENTER para iniciar->" ); fflush ( stdin ); pressioneEnter(); system ( "cls" ); menu ( funcionario, n ); free ( p ); return 0; }
adicionado 1 minuto depoisVou rodar ele e ver o que acontece.... Quero ver o arquivo gerado.
adicionado 3 minutos depoisTemos outro erro... mas agora é problema de sujeira na memória.
Spoileradicionado 7 minutos depoisvocê precisa limpar o buffer antes de ler strings ou chars...
Deveria buscar alguns tutoriais de como limpar o buffer em C para aprender a faze-lo corretamente. A forma mais fácil é pondo o fflush(stdin) mas nao lhe recomendo fazer isso,tTem comportamento indefinido... pode sair um dragão na sua tela. >_<- 1
- 1
-
ok... arrume isso então hehe, sobre tudo onde tiver lendo e imprimindo esses nifs
adicionado 0 minutos depoistalvez seja interessante guardar o nif em uma string
adicionado 3 minutos depoisassim você pode tomar os dados desse jeito"000.000.000-00"
adicionado 4 minutos depoisé só uma ideia hehe
adicionado 8 minutos depoisÉ preciso usar malloc para alocar uma única estrutura em main?
adicionado 8 minutos depoisEm todo caso o tipo do ponteiro deveria ser struct Funcionario * e n int
adicionado 9 minutos depoisse malloc retorna struct Funcionario * você precisa de um ponteiro igual(struct Funcionario* p)
adicionado 12 minutos depoisDentro da função EliminarFuncionario...
printf ( "\n\tNome: %s", funcionario[i].nome );
O i, não tem valor inicial, essa chamada pode bugar seu programa. O correto é int nif, i=0;
adicionado 14 minutos depoisnessa mesma função EliminarFuncionario você recebe um int n por parâmetro porém n usa isso para nada, não é erro mas da um aviso.
adicionado 15 minutos depoisarrumando esses "errinhos" seu programa fica com quase zero avisos. Agora vou provar a parte lógica a ver si funciona como o devido...
- 1
- 1
-
Se você n tiver 20 nifs então mude de int NIF[20]; para int NIF;.
Um conselho.... somente use letras maiusculas para constantes tipo:
const int NIF;
ou
#define numeroNIFs 20- 1
- 1
-
porque aqui na hora de ler ta perguntando em qual dos 20 nifs fazer a inserção...
scanf ( "%d", &funcionario[i].NIF );
o programa pensa que são 20 nifs então você teria:
scanf ( "%d", &funcionario[0].NIF ); scanf ( "%d", &funcionario[1].NIF ); scanf ( "%d", &funcionario[2].NIF ); ... scanf ( "%d", &funcionario[19].NIF );
adicionado 0 minutos depois@Andrah Correto...! Agora você pode chamar qualquer função desde qualquer função >_<
- 1
- 1
-
você esqueceu por o prototipo da função menu antes de main. Em C/C++ tudo o que for usado deve estar declarado antes, a implementação você pode levar para outro lugar, incluindo outro arquivo.
continuo...
adicionado 4 minutos depoisok... tem mais problemas. Um momento hehe
adicionado 5 minutos depoisna função IncerirFuncionario você chama ao menu, e antes de IncerirFuncionario não existe menu, somente ponha
void menu ( struct Funcionario funcionario[], int n )
antes da função
adicionado 6 minutos depoisJa estudou sobre protótipos de funções? Lhe ajudará evitar esses "erros"
adicionado 8 minutos depoisSpoileradicionado 12 minutos depoisse você for ler strings não ponha & adiante:
scanf ( " %s", &funcionario[i].nome ); //<- tire o &.
Regra de ouro... NUNCA POR & ADIANTE DE STRINGS OU PONTEIROS. Como ponteiros é muito raro que você use scanf para atribuir valor ao menos lembre de n por & adiante de strings... "NUNCA". Isso arruma um montão de avisos
Para ler o nome do funcionario basta:scanf ( " %s", funcionario[i].nome );
adicionado 14 minutos depoisAqui:
O usuario tem 20 NIFs?
- 1
- 1
-
agora, Andrah disse:
Ta bom Obrigado, é que foi hoje que entrei no clube *_*
não tem problema... simplesmente edite e tudo certo. Logo aguarde que seja analisado o problema, fique atenta.
- 1
- 1
-
por favor use o botão <> para postar códigos.
Se não percebou, ao não usar o botão <> seu código foi alterado pois os caracteres fazem que a letra seja cursiva(tombada).- 1
-
você vai acabar me convencendo shuehsueh
- 1
-
Pera ai... você tem algo em contra do codeblocks n é? >_<
-
Essa nunca instalei
-
2 horas atrás, Udson Blatt de Souza disse:
Crie um programa que leia a quantidade de alunos e os divida em duplas, juntando o primeiro com o último, o segundo com o penúltimo e assim sucessivamente. Se houver um número ímpar de alunos, um deles ficará sozinho.
Por favor me ajudem aí de forma simples pois sou novo nessa área ainda.
sabe pegar os dados ao menos?
-
3 horas atrás, arfneto disse:
Esse ambiente não é atualizado com frequência como vê...
você não pode estar mais errado XD-> Code::Blocks Nightly Builds
Uso codeblocks 20.03 com seu compilador incluído por default. Contei que era o 8.2 mas é o 8.1(Erro meu). Mas o erro da em todas as versões que provei. Levo provando versões desde 2011 mais ou menos, e lembro que naqueles tempos rodava as 4.X, e os long long int %lld sempre foi um incomodo, por isso acredito que não seja um erro si não algo que ignoro por completo, porque leva muitos anos igual e não acredito que sejam tão burros como eu. Por antanho ainda rodava o XP. >_<3 horas atrás, arfneto disse:Podia ter perguntado em qual versão foi compilado o exemplo pelo autor do post. Seria o simples. Era o CL 19.25 o compilador
você falou que usa visual studio anteriormente, e em alguns casos outros ambientes/compiladores, então omiti essa pergunta, porque para mim é óbvio que nesse ambiente da Microsoft, n ta dando erro.
3 horas atrás, arfneto disse:Se não mudou a versão do compilador ou não instalou outro, já sabe qual teria: 5.1 até 19 de março ou 8.2.
não...! Não mudei uso codeblocks 20.03 com o compilador que traz por defaut(8.1).
Confesso que é coisa temporal porque quase sempre enlaço codeblocks com o ultimo mingw-w64 disponível aqui->https://sourceforge.net/projects/mingw-w64/files/Mas como você pode ver, codeblocks traz um compilador igual(mesma versão), então de momento estou com codeblocks 20.03 com compilador por default, que é o 8.1. Estou esperando se vai sair a versão 9, pois no tdm gcc ja traz, se demorar instalo o tdm gcc mesmo.
4 horas atrás, arfneto disse:Não. Não é. Apenas o ambiente de trabalho no Windows. E por isso evito mudanças. Ou usar máquinas que tenham coisas de clientes.
Sei que o visual studio é mais aceitado no mundo empresarial, mas como só uso compiladores e esses tipos de programa a modo de estudo fico com codeblocks pois estou mais acostumado com ele. Um dia talvez migre porém n sei se vou para o visual studio.
4 horas atrás, arfneto disse:Não tenho problemas com elas mesmo. Mas não tenho problemas no Windows também.
Isso porque você ainda n compilou seu programa com mingw né.
-
6 horas atrás, isrnick disse:
Provavelmente é a versão do compilador que você está usando, ou alguma flag de compilação que está usando.
Estou usando o ultimo codeblocks(oficial). Suponho que seja das ultimas versões de mingw.
Sobre os flags de compilação são os normais:adicionado 8 minutos depois6 horas atrás, isrnick disse:erifique que está com flag de versão da linguagem para C99 ou mais recente (ex: -std=c99 , ou -std=gnu11 , ou -std=c11 , etc), o meu está com -std=gnu11 .
falha tanto com -std=c11 como -std=c99, mas funciona com o define -D__USE_MINGW_ANSI_STDIO=1
adicionado 9 minutos depoisnão sei que compiladores vcs tão usando mas com mingw isso gera avisos.
adicionado 22 minutos depois5 horas atrás, arfneto disse:Nenhum comentário?
Não sei o que dizer
5 horas atrás, arfneto disse:Não rodou em sua máquina?
Rodar roda, são "apenas" avisos.
5 horas atrás, arfneto disse:Se está preocupado com os warnings mude o tipo do parâmetro em seu arquivo. Eu me prometi usar sempre o mesmo ambiente quando uso o forum, e não usar outros compiladores. Apesar de não me importar muito com Warnings meu compilador parece satisfeito com esseE aqui roda sem problemas. Uso sempre Windows 10 e Visual Studio
Continuo sem saber o que lhe digo. Somente que uso codeblocks conjunto mingw(quase sempre a ultima versão).
5 horas atrás, arfneto disse:Claro que em tempos de confinamento e para checar uma dúvida de um usuário aqui acabei instalando um certo Dev-C++
5 horas atrás, arfneto disse:e um Code::Blocks e gcc 5.1 e 8.2
8.2 é o que uso atualmente já que vem com codeblocks agora mesmo.
5 horas atrás, arfneto disse:Mas daí a eu usar será outro passo...
gostos... questão de gostos
5 horas atrás, arfneto disse:Tenho máquinas Linux aqui. Meu servidor VOIP fica na mesma mesa até e roda Centos. Tem SUSE e UBUNTU no WSL, tem o bd com UBUNTU 18 ou 17 sei lá, mas não quero mexer nessas máquinas.
Nem lhe aconselho... sei que em linux vai tudo como a seda.
5 horas atrás, arfneto disse:Mas talvez fosse legal usar só Linux e gcc e postar os programas e o makefile como nos velhos tempos. Exceto que nos velhos tempos não tinha esse lance de postar
Boa hehe
Com o -D__USE_MINGW_ANSI_STDIO=1 que me indicou o @isrnickfuncionou certinho. Mas sempre gosto de soluçoes mais ortodoxa >_<adicionado 27 minutos depois
Solução do @isrnick- 1
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
Linguagem C problema em resolver o código
em C/C#/C++
Postado
Acho que você ainda n entendeu...
A definição de lixo você pode ver aqui->https://pt.wiktionary.org/wiki/lixo
Mas o ponto mais importante é "coisas inúteis". Em nosso caso \n ou <ENTER> como você mostra é lixo. Em C/C++ se usa analogias para muitas coisas. Quando se referi a limpar buffer você imagina uma faxineira lá, de escovinha na mão, jogando o lixo fora? Não!!!! É pura analogia arfneto. Se a analogia é "LIMPAR O BUFFER", a pergunta é "do que", o que está lá é lixo mesmo que você n goste dessa analogia. Tendeu?
Sei como funciona o buffer. Acho que com o anterior deixei claro o que quero dizer com lixo né.
Eu sim estou lendo.
Claro que vão rodar... Por que você diz que não?
você quase é mais velho que a linguagem shuehsuhe.
você nem usa C não é? certamente você usa C# shuehs. ou pode que C++