Acontece que o fscanf está lendo a string, mas como o caractere de controle é o ";" não o "\n". o \n é incluído e ele continua lendo até o final do stream, ou seja, até o final do arquivo. Estou tendo também problemas com bufferização (limpeza de buffer), quando eu resolvo ler mais de uma string com um mesmo scanf.
Alguém poderia me ajudar, ou me indicar qual seria o melhor método?
Rapaz, até onde eu posso ver, o único problema é que o seu programa não está
sabendo lidar com o ponto-e-vírgula. Quer dizer, ele lê o primeiro campo,
para a leitura no ponto-e-vírgula, e depois se perde porque não encontra
mais nada que pode ser lido.
Eu recomendaria a você fazer o seguinte:
fscanf(dados, "\n%[^;];", a);
Dessa forma você também ignora os brancos (incluindo quebra-de-linha) que
antecedem os campos.
> Acontece que o fscanf está lendo a string, mas como o caractere de controle
> é o ";" não o "\n". o \n é incluído e ele continua lendo até o final do
> stream, ou seja, até o final do arquivo.
> Estou tendo também problemas com bufferização (limpeza de buffer), quando
> eu resolvo ler mais de uma string com um mesmo scanf.
> Alguém poderia me ajudar, ou me indicar qual seria o melhor método?
> Agradeço desde já!
-- Rafael Giusti
Laboratório de Inteligência Computacional - LABIC
Universidade de São Paulo - USP
> Rapaz, até onde eu posso ver, o único problema é que o seu programa não está
> sabendo lidar com o ponto-e-vírgula. Quer dizer, ele lê o primeiro campo,
> para a leitura no ponto-e-vírgula, e depois se perde porque não encontra
> mais nada que pode ser lido.
> Eu recomendaria a você fazer o seguinte:
> fscanf(dados, "\n%[^;];", a);
> Dessa forma você também ignora os brancos (incluindo quebra-de-linha) que
> antecedem os campos.
> > Acontece que o fscanf está lendo a string, mas como o caractere de controle
> > é o ";" não o "\n". o \n é incluído e ele continua lendo até o final do
> > stream, ou seja, até o final do arquivo.
> > Estou tendo também problemas com bufferização (limpeza de buffer), quando
> > eu resolvo ler mais de uma string com um mesmo scanf.
> > Alguém poderia me ajudar, ou me indicar qual seria o melhor método?
> > Agradeço desde já!
> --
> Rafael Giusti
> Laboratório de Inteligência Computacional - LABIC
> Universidade de São Paulo - USP
Eu não estou entendendo muito bem o uso do OU exclusivo binario. Para mim, ele deveria testar 2 condições e retornar F se tivermos 2 condições verdadeiras ou 2 falsas. E se tivermos 1 verdadeira e outra falsa ele deveria retornar verdadeiro.
________________________________
De: Guilherme Longo <grlongo.irel...@gmail.com>
Para: ccppbrasil@googlegroups.com
Enviadas: Sexta-feira, 24 de Julho de 2009 15:52:52
Assunto: [ccppbrasil] Operador Caret (OU exclusivo binário).
Boa tarde pessoal.
No seguinte trecho de código:
val = *valp++ ^ mask;
val = abs(val);
Eu não estou entendendo muito bem o uso do OU exclusivo binario.
Para mim, ele deveria testar 2 condições e retornar F se tivermos 2 condições verdadeiras ou 2 falsas. E se tivermos 1 verdadeira e outra falsa ele deveria retornar verdadeiro.
Existe outra aplicação para o caret??
Muito obrigado
___________________________________________________________________________ _________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
Uma vantagem do XOR (especialmente para aplicações criptografia) é a
sua reversibilidade (Claro, XOR sozinho não criptografa nada...).
x ^ y ^ y = x
Faz muito tempo que li isso (nem sei se ainda vale ou se era verdade).
Mas, eu lembro que nos x86 mais antigos, a forma mais rápida de zerar
um registrador (por exemplo, AX) era:
XOR AX, AX
em vez de
MOV AX, 0
E, claro, o xor não retorna a condição. Ele faz o teste bit a bit.
2009/7/24 Guilherme Longo <grlongo.irel...@gmail.com>:
> Eu não estou entendendo muito bem o uso do OU exclusivo binario.
> Para mim, ele deveria testar 2 condições e retornar F se tivermos 2
> condições verdadeiras ou 2 falsas. E se tivermos 1 verdadeira e outra
> falsa ele deveria retornar verdadeiro.