alekatao 0 Denunciar post Postado Março 28, 2013 Ao usar o código abaixo, com as entradas:algoritmos scc1111 Douglas A saída é "scc1111Douglas - algoritmos - Douglas"Parece que a variável codigo está concatenada com a professor. Como faço pra resolver isso? Tentei com a funçao gets, mas acontece a mesma coisa. scanf("%s",&nomeDisciplina); scanf("%s",&codigo); scanf("%s",&professor); printf("%s - %s - %s\n",codigo, nomeDisciplina, professor); Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Março 28, 2013 Isso deve ser sujeira no buffer de entrada, por causa do enter ao digitar uma string. Tente utilizar: scanf("%*c"); O asterisco neste caso é um operador de supressão. Eles faz com que um caracter seja descartado, no caso, o \n do enter. Espero ter ajudado, FLW! Compartilhar este post Link para o post Compartilhar em outros sites
alekatao 0 Denunciar post Postado Março 29, 2013 Tentei usar isso que vc falou, mas a saída foi uns caracteres estranho ( que deve ser lixo).Quando executo o código pela primeira vez funciona normalmente, mas a partir da segunda, começa o erro. Deve ser sujeira no buffer ( que no caso, pega o que é digitado na sequencia). só preciso achar como tirar isso Encontrei o erro. A variável codigo está declarada assim: char codigo[7]; Ou seja, uma string com 7 posições, de 0 a 6. Porém quando ela recebe uma de tamanho 7, ocorre o erro. Quando a variavel recebe uma string com tamanho menor que 7, o programa funciona corretamente. Mudei o tamanho da string para 8 e resolvi o problema. Valeu pela ajuda GBecker Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Março 29, 2013 Na verdade em C não tem string, o que o pessoal faz é declarar uma matriz de char com duas dimensões e simular uma string. Você pode fazer isso: char disciplina[6][30]; // você pode ter 6 disciplinas de 30 caracteres. Daí no loop você usa apenas um índice. Abs Compartilhar este post Link para o post Compartilhar em outros sites