Você está aqui: C ::: Dicas & Truques ::: Arquivos e Diretórios

Como ler o conteúdo de um arquivo uma linha de cada vez usando a função fgets() da linguagem C

Quantidade de visualizações: 28682 vezes
A função fgets(), disponível no header cstdio ou stdio.h, é usada para ler caracteres de um arquivo e armazená-los em um vetor de caracteres. Esta função recebe três argumentos. Veja:

char *fgets(char *buffer, int num, FILE *file);
buffer é um ponteiro para o vetor que receberá o conteúdo lido. num é o número de caracteres que será lido (veja que o conteúdo será lido até alcançar este número, ou um caractere de quebra de linha for encontrado, ou o marcador de fim de arquivo EOF for encontrado, o que vier primeiro). file é um ponteiro para o arquivo que foi aberto.

No exemplo abaixo usamos um laço while() para ler o conteúdo até que o final de arquivo EOF seja encontrado. Desta forma, como sabemos que cada linha no arquivo termina com um marcador de fim de linha, fica fácil ler cada linha. É claro que se a linha sendo lida for maior que o tamanho do buffer, o efeito não será conseguido. Observe ainda que cada linha lida contém o caractere de fim de linha anexado a ela:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
 
const int TAM_BUFFER = 255; // quantidade de caracteres 
  // a serem lidos no buffer de cada vez
 
int main(int argc, char *argv[])
{
  FILE *arquivo = fopen("c:\\testes.txt", "r");
  char buffer[TAM_BUFFER];
 
  // testa se o arquivo foi aberto com sucesso
  if(arquivo != NULL){
    // vamos usar um laço para ler o conteúdo do arquivo
    // e armazenar no buffer
    while(fgets(buffer, TAM_BUFFER, arquivo)){
      printf("%s\n", buffer);
    }
 
    fclose(arquivo); // libera o ponteiro para o arquivo
  }
  else{
    printf("Nao foi possivel abrir o arquivo.");
  } 

  printf("\n\n");
  system("PAUSE");
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

C ::: Fundamentos da Linguagem ::: Estruturas de Controle

C para iniciantes - Como usar a instrução switch em C

Quantidade de visualizações: 44650 vezes
A instrução switch é usada quando queremos testar várias possibilidades de fluxo de código mas não queremos usar vários if...else...if. Desta forma, cada possibilidade é testada em um bloco case. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int valor = 4;

  switch(valor){
    case 0:
      printf("Valor e igual a 0");
      break;
    case 1:
      printf("Valor e igual a 1");
      break;
    case 2:
      printf("Valor é igual a 2");
      break;
    default:
      printf("Nenhuma das anteriores");
  }

  printf("\n\n");
  system("PAUSE");
  return 0;
}

Veja que, se nenhuma das condições testadas em um bloco case for satisfatória, a parte default da instrução switch será executada.


C ::: Dicas & Truques ::: Strings e Caracteres

Como escrever uma função C que verifica se duas strings são iguais ou diferentes (sem considerar maiúsculas e minúsculas)

Quantidade de visualizações: 9694 vezes
Esta dica mostra como escrever uma função em linguagem C que verifica se duas strings são iguais ou diferentes (sem considerar maiúsculas e minúsculas, ou seja, case insensitive). O nome da função é str_equal(). Esta função aceita duas strings como argumentos e retorna 1 se estas forem iguais e 0 em caso contrário. Experimente, faça as devidas alterações e adicione mais esta função ao seu repertório de códigos C:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

// função personalizada que permite verificar
// se duas strings são iguais ou diferentes sem
// considerar maiúsculas e minúsculas
int str_equal(const char *str1, const char *str2){
  while((toupper(*str1) == toupper(*str2)) && (*str1)){
    str1++;
    str2++;
  }

  return((*str1 == 0) && (*str2 == 0));
}

int main(int argc, char *argv[]){
  char palavra1[] = "Java";
  char palavra2[] = "Java";

  if(str_equal(palavra1, palavra2) == 1)
    printf("As palavras sao iguais");
  else
    printf("As palavras sao diferentes");

  puts("\n\n");
  system("PAUSE");
  return 0;
}



C ::: Dicas & Truques ::: Rotinas de Conversão

Como converter uma string em um valor inteiro usando a função atoi() da linguagem C

Quantidade de visualizações: 46524 vezes
Em algumas situações, pode ser necessário converter uma string em um valor numérico inteiro. Para isso podemos usar a função atoi().

Esta função recebe uma matriz de caracteres e tenta transformá-la em um valor inteiro. Se a conversão não for possível, o valor 0 é retornado. Os sinais "+" e "-" são válidos na string a ser convertida. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // valor inteiro em forma de string
  char valor_str[] = "10";

  // A linha abaixo causa um comportamento estranho
  //int res = 40 + valor_str;

  // temos que converter a string em um valor inteiro válido
  int res = 40 + atoi(valor_str);

  printf("O resultado e: %d", res);

  puts("\n");
  system("pause");
  return 0;
}



Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ano: 2023 Banca: ACCESS Órgão: Prefeitura de Dores do Indaiá - MG Prova: ACCESS - 2023 - Prefeitura de Dores do Indaiá - MG - Agente Fiscal

Com base no universo da ética, analise as afirmativas a seguir:

I. A ética depende dos valores que a pessoa carrega, e pode, assim, ser adaptável às situações em que vive, dependendo dos seus interesses e carga cultural.

II. O estudo da ética demonstra que a consciência moral nos inclina para o caminho da virtude, que seria uma qualidade própria da natureza humana.

III. Um homem para ser ético precisa necessariamente ser virtuoso, ou seja, praticar o bem usando a liberdade com responsabilidade constantemente.

Assinale

A) se apenas as afirmativas I e II estiverem corretas.

B) se apenas as afirmativas I e III estiverem corretas.

C) se apenas as afirmativas II e III estiverem corretas.

D) se todas as afirmativas estiverem corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

A Bacia Platina é uma das principais bacias do país. Em relação às suas características, marque a alternativa correta.

A) É formada pelas bacias dos rios Paraná, Paraguai, Araguaia e Tocantins.

B) Está localizada no Brasil, Argentina, Chile e Paraguai.

C) Possui a maior usina hidrelétrica totalmente brasileira.

D) Apresenta baixo aproveitamento econômico de sua área.

E) É a bacia brasileira com maior capacidade instalada de geração de energia.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valor = 76.1234
print("O valor é: %0.2f" % valor)

A) O valor é: 76.00

B) O valor é: 76.12

C) O valor é: 0076

D) O valor é: 0.76

E) O valor é: 76.13
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual instrução é usada para interromper um laço em Python?

A) return

B) catch

C) break

D) continue

E) exit
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

Os ecossistemas de água doce podem ser classificados em lênticos e lóticos. É correto afirmar que

A) ecossistemas lênticos são ambientes aquáticos de água corrente como rios e riachos.

B) ecossistemas lóticos são ambientes aquáticos de água parada como lagos e lagoas.

C) em lagos e lagoas, termoclina é a zona de transição entre a camada superficial e a camada profunda, sendo uma camada fina de rápida variação de temperatura.

D) um reservatório pode apresentar compartimentos com características semelhantes a rios, e outro semelhantes ao ambiente de lagos, sendo que quanto maior o tempo de residência do reservatório, maior a tendência do reservatório de se comportar como rio.

E) a solubilidade do oxigênio na água está associada à temperatura e à pressão. Com a diminuição da temperatura e o aumento da pressão, ocorre redução da solubilidade do oxigênio na água.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C

Veja mais Dicas e truques de C

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 30 usuários muito felizes estudando em nosso site.