Programar em C - Manipulação de Arquivos txt em C / Ler Dados - Aula 83
ฝัง
- เผยแพร่เมื่อ 18 ธ.ค. 2024
- Terceira aula sobre manipulação de arquivos na Linguagem C. Ler dados de arquivos em C.
Se você estiver aprendendo com as vídeo aulas não deixe de curtir e favoritar o vídeo. Isso ajuda muito o canal a crescer! Valeu!!!
=========POSTE SUAS DÚVIDAS NO FÓRUM:========
goo.gl/bVuG6
===========CONECTE-SE COM O CANAL===========
FACEBOOK - DeAlunoParaAluno
Blog - dealunoparaalun...
TWITTER - AlunoParaAluno
GOOGLE + - goo.gl/rUJzN
=============================================
==============NOSSOS PARCEIROS==============
BLOG DE CÓDIGO:
Site - blogdecodigo.wo...
Facebook - BlogDeCodigo
BRASIL PENTEST
Site - brasilpentest.com/
Facebook - BrasilPentest
=============================================
cara quero dizer q admiro de mais seus videos. Faço engenharia de computaçao e o unico motivo de eu n ter desistido do curso ainda são seus videos. Obrigado mesmo, de coraçao. Continua com os videos, vc eh o melhor professor dessa area, de longe
Estou cursando técnico em Desenvolvimento de Sistemas, e esta aula me ajudou muito para meu projeto do semestre em Lógica de Programação. Muito obrigado!
Eu to atualmente focado em JS mas preciso aprender um pouco de C para faculdade. Tive que assistir algumas aulas desse canal que ME SALVOU. Suas aulas estão me dando vontade de aprender C, realmente as melhores.
Ouvindo seu peido em 2020, suas aulas são demais obrigado ! kkkkkkkkkk
KKKKKKKKKKKK NA HORA Q TU FALOU EU ESCUTEI TBM
Olá, desde a Aula 81, que é onde começa a explicar um assunto de um interesse para uma programação pessoal, que venho entendo perfeitamente. Obrigado pela dedicação e explicação.
2020 com os ead cumeno, aprendendo quase nada com o professor de c, e o cara me salvando hard pras provas
Você é muito bom... suas aulas são mega didáticas...parabéns!
Cheguei agora, curti demais a aula. Tava com essa dúvida sobre como gerar um arquivo.
Ajudou muito, já tava quase pulando da janela do prédio da faculdade quando vi o vídeo e tudo se resolveu. Obrigado
2:19 , "Quebrar a perna do usuário", boa kkkakaka
Tbm rachei de rir
Muuuito boas as aulas, muito claras, praticas e objetivas. Facilitou demais!
Parabéns pelo conteúdo simples e de ótima compreensão. Obrigado pela ajuda!
essas aulas são maravilhosas
muito bom, se n fosse esse video eu iria patinar por dias, valeu mesmo
Muito,legal. Vai ajudar bastante no meu programa em C.
Estou achando arquivos meio complicado, mas suas aulas estão me ajudando, valeu!!
Oi
Fala ae Ronne .. vai ter sim cara.. acho que nas próximas semanas já devo iniciar a falar sobre estruturas de dados
Paraben otimo canal o melhor do yutube que vi até agora, estou sempre acompanhando, vou entrar esse ano ainda em um curso de C++ na microcamp e seus videos me ajudaram a começar em programação VLW CARA
Aula 84 :)
Faça a leitura como string.
você pode utilizar a função fgets..
tem uma maneira de usar o fscanf pra ler a linha é só fazer dessa forma: fscanf(arquivo,"%[^
]s",string);
Muito boa iniciativa, cara! Estudo em uma escola técnica, mas perdi essa aula e você me salvou xD
eu gostei desa tua aula é muito boa, parabens! obrigado
Namoral não sei se vai ler isso ou não mas mt obg ajudou d+++++++
Seus videos são mega didáticos...parabéns
Aulas excelentes. Obrigado!
valeu Luiz!
Ta de parabéns com suas aulas, gostei mto,vlw
no minuto 2:30 é melhor usar perror("Erro: "); para informar o erro ao abrir o arquivo ja que podem ser muitos tipos de erros. Por exemplo, um erro por não existir tal arquivo o perror retorna logo depois do nosso string "Erro: " a seguinte frase, "Erro: No such file or directory", ou por exemplo si não temos direitos para escrever no arquivo, "Error: Permission denied", ou tentar especificar um path errado "Erro: Not a directory". Posso lhe assegurar que são muitos os erros possíveis, por isso é melhor controlar isso corretamente com perror.
Ola gostaria muito tambeim de aprende c++ gosto muito do seu canal. se voce souber c++ tem como fazer uma playlist para nois ? valeu!
Muito obrigada pelas vídeo aulas!
hmm.. sim seria um return..
Mas lembrando que no caso desse programa em específico return ou exit dão na mesma coisa..
Dar um return na função principal vai fazer o programa terminar de qualquer maneira.
Caso esse exemplo apresentado tivesse sido implementado em uma outra função chamando a RETURN faria o programa voltar a função que chamou a função atual :0
não sei se ficou muito claro escrevendo
Excelente aula... Obrigado
Parabéns pelas videoaulas, estou acompanhando todas e curtindo pra caramba...
Só uma coisa, você abordará banco de dados e interface gráfica futuramente???
Um abraço e mais uma vez parabéns
OTIMA AULA
posso usar também:
fscanf(f, "%[^NULL]s, texto);
printf("%s", texto);
pra quem não sabe, o operador %[^]s faz com que uma string seja lida até o que você escrever depois do ^, no caso acima foi lida até NULL que é o final do arquivo, mas se você fizesse %[^
]s então a string seria lida até o primeiro espaço!
irmao, tenho um arquivo com varias linhas (exemplo de linha: Denise, 12), e gostaria de armazenar o nome e o numero em variaveis diferentes, como faço?
Posso usar o %[^,]s para ler o nome, mas como faco para ler a partir da virgula?
@@LUCASDAVIDROSCZINIAKCOSTA haha nem lembrava desse meu comentário.
Brother, eu não uso C faz um tempo já, porém acho que vc pode ler linha a linha, e utilizar a lib de regex para quebrar o texto de cada linha na vírgula.
Se você ainda não conhece regex, dedique um tempinho p aprender, é muito útil nessa vida de computeiro.
Tudo de bom, bons estudos!
Onde posso encontrar suas vídeo-aulas sobre arquivos binários, se é que fez..agradeço !
Lá em 8:50 ~9:00.
Ao invés de deixar o "%s" na função fscanf, pq n coloca %[^
]? Isso resolveria o problema de imprimir só a primeira string, não? Pelo menos ao montar o msm programa em casa utilizando isso deu certo. Pq trocar %s por %[^
] funciona?(não conheço muito a parte teórica por trás)
muito util! obrigada
Deveria fazer um vídeo, tipo bem simples com um vetor armazenando, sei lá 5 nomes ou números e salvando em .txt, ai quando abrir os nomes estivessem lá e não fossem apagados. Ai já dava pra treinar a exclusão caso o vetor estivesse cheio. Pensa nisso!!!
Olá amigo, suas aulas contém um excelencia rara, parabéns!!!
Queria saber se você tem alguma dica para que eu possa fazer a criação de mapa visuais em linguagem, ou isso convém apenas em outras linguagens?
7:59 Esse "NULL" seria a mesma coisa que "\0" ?
Muitíssimo obrigado!
achei seu canal pelo um site na DEEP WEB :>
Cara vc sabe mim dizer algum lugar que fala sobre leitura e validação de dados em c
Obrigado!
pão com mortadela e coxinha...prevendo o futuro?
kkkkk
previsto.
Nem fudendo cara kkk, lula eleito 2023... 😢
SALVOU !!!!!!!
Bom dia, é possivel utilizar o fseek para retroceder? Ja existe o rewind, e nunca ouvir falar de fseek para retroceder. Poderia me explicar? Obrigado
vc pode ler uma string usando o fscanf, é so usar envés de %s, substitua pelo
" %[^
]" OBS: tem 1 espaço depois da primeira aspas "
fica mais ou menos assim
fscanf (file," %[^
]", c)
higor bardela
Para ler uma linha funciona, mas no loop while acho que dá problema.
ihuuu dahora!!
expliquem a função qsort por favor...
eu sou auno de eletrônica industrial e estudo sozinho. Acabei de sair de uma faculdade de administração mas ñ tive escolha senão pegar o livro e tentar estudar.
2:21 peidinho de lei
kkkkkkkkkkkkkkkkkkkkkkkkk
11:03 ele deu outro kkkkk
Maior peidão!
haha a galera é foda :D
Hahahahahhahahahhahahahe se fude nem tinha notado
qual o comando que posso usar para sair de um if por exemplo, mas que o que esta depois do if seja executado? seria o return 0 dentro do if? pq pelo que entendi o exit(0) encerra o programa.
Eu nao gosto de comentar... mas depois dessa "eu vou quebra a perna do usuario" kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk rachei
ola boa noite, e possível escrever o programa em c, fazendo com que o programa leia mais de um arquivo.txt ao mesmo tempo se for por favor mande um vídeo ou me responde, valeu.
eu queria entender o que no while(fgets...) faz com que as leituras seguintes desçam uma linha? O que impede esse laço de simplesmente ler várias vezes a mesma linha?
flatulencia aos 2:21
como faço para converter umas string de caractere em um vetor de inteiro, sedo que no meu arquivo só possui numeros
teria um jeito de fazer com loop for?
vish!! hahah
Dúvida, quando você fala que a FGETS só pega a primeira linha dos arquivos e que isso é por causa da quebra de linha, você fala do
ou do \0? Eu acho que seria pelo \0... =) to gostando das aulas! Sorte ae...
Acho que é na
(caractere nova linha),pois \0 simboliza o fim da string e não da linha.
Heitor Santos
realmente, depois fui pensar e analisar e vi que falei bobagem kkk =D
Quando tento colocar uma variável tipo char pra receber a variável frase, dar um erro de conversão. Como resolver??
char palavra[100];
while(fgets(frase, 1000, file) != NULL){
palavra=frase; //
eu to querendo ler de um aquivo um numero com uma string tipo x21, gostaria de pegar apenas o 21, sabe como faço isso?
Valeuuuuuuuuu
Só por curiosidade, e se eu quiser ler um texto gigante que eu não faço ideia de quantos caracteres ele tem? Tem algo mais eficiente que o" fgets"???
Eu vi uma maneira quando eu estava aprendendo c++, So que parece que e mas complexa que essa.
Procurei e diff para te mostrar mas perdi ela. E não o lembro onde estudei. fui
Por mais que tenha se passado 2 anos, acho que é só você atribuir mais valores ao vetor, no caso ele usou 100 espaços, vai variando até onde terminar o texto, é uma maneira mais básica. UASHAU
@@gabrielpaixao5915 eu posso usar o comando feof não? acho que ele tambem vai até o fim do arquivo...
@@gregzeraa Perfeito, Thales. É a melhor maneira mesmo de chegar no fim do arquivo, corrigindo, é o EOF.
Uma dúvida: como faço para a função fscanf ler a partir de uma determinada linha do arquivo? Pois os arquivos de texto que quero ler têm apenas numeros inteiros a partir da segunda linha, e não quero usar fgets só por causa da primeira linha, que não tem números, para depois ter que transformar todas as seguintes de strings para inteiros...
tu gosta de comida hein cara kkkk
Olá amigo estou com uma dúvida, como faço para distribuir as informações do arquivo de txt em uma estrutura tipo árvore....se tiver algum email pra contato passa por favor vlw abraço!!
ola, nao entendi muito bem o que o tamanho do vetor frase esta delimitando exatamente... testei o programa colocando frase[2] e ela leu o arquivo perfeitamente. Poderia explicar?
exit(0) e return 0 tem a mesma função?
Nao
Italo, aqui funcionou normal com eu colocando Numeros no arquivo string.txt
exit(0) não deveria ser evitado?
Ainda mais na main()?
Como faço para somar todos os números dentro do meu arquivo .txt
tem como fazer uma aula falando de acesso a banco de dados?
Bom dia
Alguém sabe como faz para ler caractere por caractere do arquivo?
As aulas 81,82 e 83 servem somente para arquivos txt? E no caso de eu precisar ler um arquivo pdf?
Fiz um programa parecido. Lendo um arquivo com várias linhas, porém, quando eu dou o printf na variavel fora do laço while não funciona, não mostra todos os caracteres do arquivo lido
void main(int argc, char *argv[])
{
FILE *fp;
char nome[500];
fp = fopen("lista.txt", "r");
while (fgets(nome, 500, fp) != NULL)
{
printf("%s", nome);
}
int cont=0;
while (nome[cont] != NULL)
{
printf("%c", nome[cont]);
cont++;
}
fclose(fp);
}
O arquivo q está sendo lido tem mais q 500 caracteres porém qnd eu uso o segundo laço while pra printar a variável não exibe nem até o centésimo caractere.
Já tentei de tudo. Meu objetivo é jogar oq tá dentro do arquivo na variável nome.
void main(int argc, char *argv[])
{
FILE *fp;
char nome[100];
char aluno[1000];
fp = fopen("lista.txt", "r");
while (fgets(nome, 100, fp) != NULL)
{
strcat(aluno, nome);
}
printf("
");
for (int j = 0; j < 1000; j++)
{
printf("%c", aluno[j]);
}
fclose(fp);
}
Pra quem tinha a mesma dúvida. O código acima resolve o problema jogando para aluno oq é lido no arquivo.
P q n usar o fgets diretamente dentro do fprintf??
Por que o fgets é como se fosse o scanf só que para strings.
olá, estou vendo as aulas, e gostaria de agardecer e parabenizar pelo trabalho e ajuda.
e agora uma pergunta, fiz tudo corretamenta consegui ler a string e tal, mas o primeiro espaço do vetor volta vazio, não le toda a extensão do texto, sabe me dizer o que errei? segue o codigo
#include
int main(){
FILE *file;
file=fopen(/*caminnho*/"C:\\Users\\padilha\\Desktop\\vaia irma\\padilha.txt",/*caractere de leitura*/"r");
//quando for dar o caminho lembrar de por duas contrabarras.
char leitura[100];
fscanf(file,"%s",&leitura);
printf("%d",leitura);
while(fgets(leitura,100,file)!=NULL){
printf("%s",leitura);
}
fclose(file);//fechar o arquivo
}
Teria como eu fazer um programa em C que fizesse a leitura de um arquivo aleatório dentro de uma pasta? Ex: Dentro de uma pasta eu teria vários arquivos com perguntas... Quero exibir essa pergunta de forma aleatória sempre que o programa executar... Como eu poderia fazer pra ele exibir aleatoriamente? Obs: Os arquivos terá como nome números inteiros como 01, 02, 03, 04, 05.....
Como eu faria isso com structs?
galera tava dando uma olhada nessa vídeo aula que ensina à abrir um aquivo e escrever! mais eu queria saber como pegar palavras aleatórias de um arquivo! alguém sabe?
Alguém sabe como colocar em ordem alfabética arquivo txt?
# include
int main()
{
FILE *file;
//se quiser em outro diretorio
//file = fopen("C:\\Users\\zap\\Desktop\\Arduino\\Aulas de c\\variaveis\\Manipulação de Arquivos txt em C Escrever tDado\\teste.txt","w");
//"r"->ler,"w"->escrever,"a"->alterar
file = fopen("string.txt","r");
if(file == NULL){
printf("Nao foi possível abrir o arquivo
");
getchar();
exit(0);
}
char frase[100];
while(fgets(frase, 100, file) != NULL){
printf("%s",frase);
}
fclose(file);
return 0;
}
Vc é professor em alguma Universidade?
haha.. então cara.. já é a quarta pessoa que assiste meus vídeos que diz que achou o canal na deepweb :0
locura haha
to com uma dificuldade nesse codigo ele nao ta encontrando o arquivo teste.txt se eu tiro a extensao txt ele encontra
FILE *file;
file = fopen("teste.txt","r");
if (file == NULL){
printf("O arquivo nao foi encontrado");
exit (0);
} se eu tiro txt funciona tem algum macete q nao to sabendo usar
Alguém sabe como posso fazer para escrever em um arquivo como se fosse um banco dados, sem precisar reescrever todo o arquivo e alterando a linha que desejo.
Vocês podem me ajudar?
porque a linha setlocale (LC_ALL, "Portuguese"); nao funciona dentro do arquivo txt
Como eu faria faria para contar quantos caracteres tem em cada palavra dentro do arquivo texto?
const int tm = 10;
char mat [tm] = {};
cin.getline(mat,tm);
int TMChar = strlen(mat);
cout
Inserir simplesmente um break não resolveria não ?
Como faço para ler dentro de um TXT, apenas determinado trecho e apresentar no programa? Ou seja, exemplo do meu trabalho: Um aquivo txt armazena dados de uma compra, da seguinte forma:
Compra 1
Produto 1
Produto 2
Produto 3
Total a Pagar
________________________________
Compra 2
Produto 1
Produto 2
Produto 3
Produto 4
Total a Pagar
_________________________________
Compra n
Produto n
Total a Pagar
_________________________________
Quero que u usuário digite o código 2, dai o sistema vai imprimir apenas a Compra 2, até o underline, da seguinte forma:
Compra 2
Produto 1
Produto 2
Produto 3
Produto 4
Total a Pagar
_________________________________
Como daria para fazer?
Desde ja agradeço
Os comando *guetchar();* e *exit(0)* não funcionaram no meu programa.
Ou podem usar dessa forma:
#include
#include
main()
{
FILE *p;
char c;
if((p=fopen("teste.txt","r"))==NULL){
printf("Erro!impossivel abrir o arquivo");
exit(1);
}
while(!feof(p)){
fscanf(p, "%c", &c);
printf("%c",c);
}
fclose(p);
system("pause");
return 0;
}
A biblioteca "stdlib.h" está sendo usada no programa? Se sim, Pra q?
Como fazer pra ler um arquivo que eu não sei como ele vai tá formatado?
Tipo, o arquivo vai ter uma sequencia de linhas, cada linha começa com o nome de uma função e seus parametros, mas não necessariamente todas elas tem a mesma quantidade de parametros, assim:
image 600 400
clear 0 0 0
color 100 170 200
line 0 400 600 200
polygon 3 0 400 300 200 600 400
circle 200 100 50
color 180 30 50
fill 300 300
save test.ppm
Como seria feita a leitura nesse caso? Alguém helpa aqui pls
:)
Mas e se eu quiser adicionar cada linha dessa a uma variavel:
pao com mortadelo = Frase1[30];
Coxinha = Frase2[30];
Pao com queijo = Frase3[30];
Como eu faria pra cada frase ir para uma variavel, sem necessariamente precisar botar todas elas dentro de somente uma variavel como esta sendo mostrado?
acho que ao inves de colocar != NULL no while vc precisaria colocar != '\0' aí vc estaria lendo até o final da string e não todas de uma vez