Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Dúvida em C
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  6 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
OAlinux  
View profile   Translate to Translated (View Original)
 More options Jul 10, 2:26 pm
From: OAlinux <oali...@gmail.com>
Date: Fri, 10 Jul 2009 15:26:53 -0300
Local: Fri, Jul 10 2009 2:26 pm
Subject: Dúvida em C

Pessoal, boa tarde!

Em um arquivo de texto, possuo o seguinte conteúdo:

[lista.dat]

"Nome";"Idade";"Sexo";"Departamento";
"Alexandre";"28";"M";"Mec";
"Daniele";"19";"F";"Adm";
"Elis";"20";"F";"Qua";
"Claudio";"21";"M";"Man";
"Ronaldo";"32";"?";"Cor";

Gostaria de ler este arquivo ignorando os pontos/vírgulas alocando cada item
em um vetor de caracteres. Vejam o programa que fiz:

#include<stdio.h>
main() {
 FILE *dados;
 dados = fopen("lista.dat","rt");
 char a[30];
 do  {
 // fgets(buffer, 30, dados);
  fscanf(dados, "%[^;]", a);
 // fflush(dados);
 // fscanf(dados,"%*c");
  printf("%s\n", a);
 } while(!feof(dados));
//fclose(dados);

}

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á!


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rafael Giusti  
View profile   Translate to Translated (View Original)
 More options Jul 10, 2:34 pm
From: Rafael Giusti <rfgiu...@gmail.com>
Date: Fri, 10 Jul 2009 15:34:18 -0300
Local: Fri, Jul 10 2009 2:34 pm
Subject: Re: [ccppbrasil] Dúvida em C

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.

2009/7/10 OAlinux <oali...@gmail.com>

--
Rafael Giusti
Laboratório de Inteligência Computacional - LABIC
Universidade de São Paulo - USP

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Eric Chiesse  
View profile   Translate to Translated (View Original)
 More options Jul 10, 5:41 pm
From: Eric Chiesse <echie...@gmail.com>
Date: Fri, 10 Jul 2009 14:41:05 -0700 (PDT)
Local: Fri, Jul 10 2009 5:41 pm
Subject: Re: Dúvida em C
Eu recomendaria que você quebrasse seu problema em pedaços menores
primeiro.

Tentar resolver um problema complexo diretamente é muito mais dificil
que resolver vários problemas pequenos.

Eu tentaria primeiro obter as linhas (já que elas fazem sentido no seu
problema) e depois tentaria obter os elementos individuais de cada
linha.

Abraço.

Eric.

On Jul 10, 3:34 pm, Rafael Giusti <rfgiu...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Operador Caret (OU exclusivo binário)." by Guilherme Longo
Guilherme Longo  
View profile   Translate to Translated (View Original)
 More options Jul 24, 2:52 pm
From: Guilherme Longo <grlongo.irel...@gmail.com>
Date: Fri, 24 Jul 2009 15:52:52 -0300
Local: Fri, Jul 24 2009 2:52 pm
Subject: 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


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Res: [ccppbrasil] Operador Caret (OU exclusivo binário)." by Emerson de Freitas Barcelos
Emerson de Freitas Barcelos  
View profile   Translate to Translated (View Original)
 More options Jul 24, 3:10 pm
From: Emerson de Freitas Barcelos <emerson_frei...@yahoo.com.br>
Date: Fri, 24 Jul 2009 12:10:21 -0700 (PDT)
Local: Fri, Jul 24 2009 3:10 pm
Subject: Res: [ccppbrasil] Operador Caret (OU exclusivo binário).

Por exemplo:

155 ^ 97 = 250

  10011011b (0x9B) 155
^ 01100001b (0x61)  97
-----------
  11111010b (0xFA) 250

0^0=0, 0^1=1, 1^0=1, 1^1=0

________________________________
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


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Operador Caret (OU exclusivo binário)." by Paulo Rogério Panhoto
Paulo Rogério Panhoto  
View profile   Translate to Translated (View Original)
 More options Jul 24, 3:54 pm
From: Paulo Rogério Panhoto <pa...@voicetechnology.com.br>
Date: Fri, 24 Jul 2009 16:54:17 -0300
Local: Fri, Jul 24 2009 3:54 pm
Subject: Re: [ccppbrasil] Operador Caret (OU exclusivo binário).
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>:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google