Тёмный

Gestione di File in C 

Get the Cookie
Подписаться 9 тыс.
Просмотров 27 тыс.
50% 1

🍪 Argomenti 📚
- Gestione dei file in C attraverso le funzioni standard
- Leggere file di testo in C (per righe e per carattere)
- Scrivere file di testo in C
- Aggiungere testo a file in C
- Chiamate di Sistema, Buffering
🍪 Timestamps ⌚️
0:00 Intro
0:09 Teoria sui file
2:21 Es 1: Scrittura numero su file
6:41 Es 2: Lettura numero da file
8:39 Es 3: Scrittura di righe su file
10:56 Es 4: Lettura file riga per riga
13:03 Es 5: Lettura file carattere per carattere
16:31 Chiamate di sistema
19:10 Outro
🍪 Codice playlist ⚙️
github.com/gethecookie/playli...
🍪 Fonti 🍫
Manuale fopen: man7.org/linux/man-pages/man3...
Manuale syscalls: man7.org/linux/man-pages/man2...
Codice sorgente fopen: opensource.apple.com/source/L...
Sequenze di escape ANSI: en.wikipedia.org/wiki/ANSI_es...
🍪 Playlist di "Tutto ciò che non hai capito su C" 📹
• Tutto ciò che non hai ...

Опубликовано:

 

23 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 33   
@marco4074____e
@marco4074____e Год назад
grazie a dio qualcuno che spiga in maniera intuitiva questi temi c'è ancora.
@GetTheCookie
@GetTheCookie Год назад
Felici di aver aiutato :)
@VasaMusic438
@VasaMusic438 2 года назад
Complimenti !! Molto interessante, sopratutto l'ultima parte sulle chiamate di sistema e la comparazione tra fread e read !!!
@GiovanniManfredi_64
@GiovanniManfredi_64 3 года назад
Siete grandi!
@skankhan8068
@skankhan8068 3 года назад
il video è utilissimo e ben fatto, ma mi sento di consigliarvi di ingrandire leggermente il testo per facilitarne la lettura
@lorenzolaverde9442
@lorenzolaverde9442 2 года назад
utilissimo
@mvstergd8247
@mvstergd8247 2 года назад
utile e ho capito molto di piu...ma io non riesco a crearmi proprio il file, forse perchè sono da windows e devo scrivere diversamente? mi dice tipo USA CRT_SECURE_NO_WARNINGS ma poi argomenti insfficienti per lo scanf_s ma dai
@edigiolocci4236
@edigiolocci4236 Год назад
Ma perché il while(feof(file)) crea un botto di problemi?? C'è un alternativa valida?
@francescopianese2113
@francescopianese2113 2 года назад
Il video è molto utile, complimenti. Dato che non ho l'entensione per poter usare getline, c'è una soluzione o devo istallarla obbligatoriamente per scrivere un codice che fa una cosa simile?
@GetTheCookie
@GetTheCookie 2 года назад
No puoi tranquillamente scriverne una tu che faccia una cosa simile (ce ne sono tante già scritte se cerchi). In generale con i file è comodo avere alcune funzioni ausiliarie che ti semplificano operazioni comuni come leggere linee, controllare errori e memorizzare il contenuto del file in strutture dati
@lorenzorossi9718
@lorenzorossi9718 2 года назад
BEL VIDEO! Ma che compilatore usi?
@GetTheCookie
@GetTheCookie 2 года назад
Quello di C :)
@lorenzorossi9718
@lorenzorossi9718 2 года назад
@@GetTheCookie come se chiama?
@GetTheCookie
@GetTheCookie 2 года назад
L'ide è CLion, il compilatore è gcc
@ashvindersingh1045
@ashvindersingh1045 2 года назад
Non mi va "getline" come posso fare, grazie.
@francescoliboriocacciato5227
@francescoliboriocacciato5227 5 месяцев назад
Ciao sono Francesco. Vorrei un chiarimento: quali sono le differenze essenziali tra C e C++? Vorrei anche sapere se un programma scritto in C è eseguibile con il compilatore C++ e viceversa. È ancora: quale tra i due è più veloce nell esecuzione dei programmi? Grazie per la risposta che spero arrivi presto.
@tommyxeno
@tommyxeno 12 дней назад
Ciao, rispondo io. C++ ha una sintassi più facile ed intuitiva di C, supporta la programmazione orientata agli oggetti mentre C no, introduce un sistema di gestione degli errori con try throw ecc molto più comoda di C, ha librerie standard che introducono list, vector, map ed in generale algoritmi più facili ed efficaci, ha una miglior gestione della memoria (dinamica ecc) di C, per ora non mi viene in mente altro. In linea di massima sì, puoi compilare C con C++ perché quest'ultimo è un upgrade di C e dunque comprende molte parti della sintassi, mentre non puoi compilare C++ con C. Nell'esecuzione non è facile dire chi dei due è più veloce. Tieni conto che più le cose si semplificano per l'umano, più si complicano per la macchina. Dunque, un linguaggio basso basso livello è sicuramente più veloce e meno pesante. Tuttavia, essendo un linguaggio più vecchio, ha funzioni e librerie che sono state rivisitate ed ottimizzate. Dunque, direi che sono in generali simili, perché poi dipende tutto dal codice che scrivi tu programmatore. Spero di esser stato d'aiuto.
@chouaybyahya9658
@chouaybyahya9658 2 года назад
potresti gentilmente dirmi quale compilatore usavi in questo video? grazie.
@GetTheCookie
@GetTheCookie 2 года назад
gcc
@chouaybyahya9658
@chouaybyahya9658 2 года назад
@@GetTheCookie volevo chiedere del editor di testi in realtà 😅
@GetTheCookie
@GetTheCookie 2 года назад
Quello è CLion di jetbrains
@michela4415
@michela4415 2 года назад
Tutto chiarissimo, ma non so perchè mi da "getline" come errore. Forse non è valido con C99 (?)🤷‍♀
@GetTheCookie
@GetTheCookie 2 года назад
Si, getline è un estensione POSIX (del 2008). Ci sono modi per farla funzionare con compilatori più vecchi ma non ne vale la pena, dato che puoi emulare il suo comportamento usando metodi più semplici
@michela4415
@michela4415 2 года назад
Grazie della risposta :) Proverò con una funzione
@user-mx3sy8mi5h
@user-mx3sy8mi5h Год назад
se voglio sostituire una determinata parola all'interno del file come posso fare ? oppure come posso stampare solamente la parola ?
@GetTheCookie
@GetTheCookie Год назад
Per la prima richiesta la cosa più semplice che puoi fare è leggere il contenuto del file e salvartelo in una stringa. Fare sostituzione della parola che ti interessa nella stringa salvata e riscrivere totalmente il file incollandoci dentro la stringa modificata. Nel caso di file lunghi puoi fare queste operazioni salvando nella variabile un certo numero di righe (anziché tutto il file) e passare poi alle successive fino a fine file. Per la seconda richiesta anche qui: leggerei il file, salverei il contenuto in una variabile e lavorerei su essa.
@user-mx3sy8mi5h
@user-mx3sy8mi5h Год назад
@@GetTheCookie Uso il ciclo che mi permette di leggere riga per riga e lo confronto con la parola da sostituire , in tal caso scrivo tutto in un altro file creato appositamente . Giusto? grazie mille
@GetTheCookie
@GetTheCookie Год назад
Come soluzione funzionante va bene come dici tu, anche se nulla ti vieta di riscrivere il tutto nello stesso file, senza crearne uno nuovo. Attenzione però in questo caso ai conflitti avendo lo stesso file aperto in lettura e in scrittura (dovresti prima leggere tutto e solo alla fine riscrivere tutto il contenuto). In alternativa, per usare meno memoria, puoi leggere il file riga per riga, memorizzando solo una riga alla volta (l'ultima letta), e controllare se quella riga contiene la tua parola. Se si, usando le funzioni di fseek, puoi spostarti e scrivere manualmente in una posizione specifica del file. Questo consuma solo una quantità di memoria costante (il buffer in cui metti le righe), e legge tutte le righe del file.
@user-mx3sy8mi5h
@user-mx3sy8mi5h Год назад
@@GetTheCookie grazie mille...
@matteomontanari2960
@matteomontanari2960 2 года назад
Tipicamente se non chiudi il file e l'hai aperto in "w" o"a" non ti salva le modifiche che hai fatto. Comunque grandissimi
@GetTheCookie
@GetTheCookie 2 года назад
Esatto, il comportamento per quando si chiude un file (in particolare, quando lo si ha modificato e si deve chiudere) non è definito, e quindi c'è sempre un livello di incertezza che si combatte adottando principi e standard come le regole di buona programmazione riguardo ai file
@ytdavide
@ytdavide Месяц назад
Le spiegazioni sono ottime ma i video su dispositivi mobili hanno il font troppo piccolo per persone anziane come me 😂😂😂
@GetTheCookie
@GetTheCookie Месяц назад
Grazie del suggerimento, effettivamente è una cosa che non avevamo valutato in questi primi video 😅