Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-04-2006, 16:13   #1
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
[C] leggere \n da un file .txt

ciao a tutti!
qualcuno sa se è possibile leggere i \n presenti in un file di testo?
cioè io ho bisogno di leggere delle stringhe presenti in un file di testo (uno la funzione fscanf) ma avrei bisogno di leggere anche quando il testo va a capo (e purtroppo fscanf lo ignora)..
c'è un modo per farlo??
grazie mille a tutti !
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2006, 16:47   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da VendeR
ciao a tutti!
qualcuno sa se è possibile leggere i \n presenti in un file di testo?
cioè io ho bisogno di leggere delle stringhe presenti in un file di testo (uno la funzione fscanf) ma avrei bisogno di leggere anche quando il testo va a capo (e purtroppo fscanf lo ignora)..
c'è un modo per farlo??
grazie mille a tutti !
La funzione fgets ad esempio legge anche il \n. Per essere precisi, fgets legge da uno stream e memorizza in un buffer un massimo di N-1 caratteri dove N viene specificato nella chiamata. Se la linea non è più lunga di N-1, viene memorizzato anche \n. Il carattere nullo \0 viene sempre memorizzato (ecco perché del N-1).
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 01:24   #3
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
si me lo ricordavo che fgets leggeva anche il \n, però non so se nel mio caso si adatta a quello che voglio fare: allora cerco di spiegarti bene cosa voglio fare cosi mi puoi dire se è possibile
allora io devo leggere parole per parole un testo scritto in un file ( e le leggo come ho già detto con fscanf) poi devo controllare se la parole letta è presente in un altro file e, in caso affermativo, devo sostituirla con un'altra, altrimenti tengo la stessa.. in pratica devo sostituire le parole di un brano con delle altre, e salvare il testo ottenuto in un terzo file..
quello che vorrei fare io è "salvare" anche la formattazione del file di testo originario, perchè cos' come ho fatto ora il mio programma le parole mi vengono scritte tutte una di seguito all'altra..
c'è un modo per poter fare quello che desidero??
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 10:09   #4
Ciocco@256
Senior Member
 
L'Avatar di Ciocco@256
 
Iscritto dal: Sep 2003
Città: Torino
Messaggi: 752
Puoi provare a usare una cosa del genere:

int ncaratteri=0, int r=0, int n;
fgets(buffer,N,primofile);
do{
r=sscanf(buffer[ncaratteri],"%s%n",parola,&n);
ncaratteri=ncaratteri+n;
} while(r==1);

così leggi una riga da primofile e la metti in buffer \n compreso, poi leggi dal buffer parola per parola (in n hai il numero di caratteri letti, che sommi ad ncaratteri in modo da partire a leggere la parola partendo dal punto giusto, e non di nuovo dall'inizio) fino a quando sscanf legge qualcosa (sscanf ritorna il numero di parole lette). Esci così dal ciclo quando trova il \n.

fai sapere se funziona che non l'ho mai provata questa cosa

cià
__________________
ubuntulinux | Windows 7
Trattato con: enghel | thunder01 | char66 | siemens | topogatto | ::tony design | alcol | mammabell | uazzamerican | niko0 | oldfield |
Ciocco@256 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:09   #5
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
ok adesso lo provo
ho solo alcuni dubbi.. in fgets, io non so che valore ad attribuire ad N, perhcè non so quanto sarà lunga la riga, gli do un valore sovradimensionato??
e %n che tipo indica?? il \n ?
scusa ma cosa cambia da sscanf a fscanf??
grazie mille!!
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:24   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da VendeR
ho solo alcuni dubbi.. in fgets, io non so che valore ad attribuire ad N, perhcè non so quanto sarà lunga la riga, gli do un valore sovradimensionato??
Sì, in genere si fa così. Si mette un numero sufficientemente alto, es: 256, 512. Tieni presente che se la linea fosse più lunga del buffer, una chiamata a fgets legge solo un pezzo della riga e senza riportare il \n mentre il resto della riga non viene perso perché la/le successiva/e chiamata/e a fgets leggeranno i restanti pezzi della riga.

Quote:
Originariamente inviato da VendeR
e %n che tipo indica?? il \n ?
No, serve per ottenere il numero di caratteri "consumati" fino a quel punto.

Quote:
Originariamente inviato da VendeR
scusa ma cosa cambia da sscanf a fscanf??
sscanf scansiona una stringa (il primo argomento è un char*), fscanf scansiona uno stream di input (il primo argomento è un FILE*).
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:35   #7
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
ok grazie per i chiarimenti
Ora provo il codice
poi vi dico^
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:41   #8
Ciocco@256
Senior Member
 
L'Avatar di Ciocco@256
 
Iscritto dal: Sep 2003
Città: Torino
Messaggi: 752
Quote:
Originariamente inviato da VendeR
ok adesso lo provo
ho solo alcuni dubbi.. in fgets, io non so che valore ad attribuire ad N, perhcè non so quanto sarà lunga la riga, gli do un valore sovradimensionato??
e %n che tipo indica?? il \n ?
scusa ma cosa cambia da sscanf a fscanf??
grazie mille!!
fscanf = "file scanf", cioè è come una comune scanf ma invece da leggere da video leggi da file
sscanf = "string scanf", cioè è come una comune scanf ma invece da leggere da video leggi da una stringa (cioè un vettore)

%n -> writes into the argument the number of characters read so far by this call; int *.
No input is read. The converted item count is not incremented. -> in pratica %n è un particolare tipo che permette di contare i caratteri letti da una scanf (o fscanf o sscanf che sia). Dopodichè questo numero lo memorizzi in un intero col solito metodo &variabile.

In effetti se non sai quanto è lunga una riga dovresti sovradimensionare N...oppure usare un ciclo leggendo carattere per carattere, cioè qualcosa del tipo

char parola[MAXPAROLA];
//........
ncarattere=0
do
{
fscanf(nomefile,"%c",parola[ncarattere]);
ncarattere++;
} while ( (parola[ncarattere-1]!=' ') || (parola[ncarattere-1]!='\n') );

/*ho letto una parola e al fondo del vettore parola ho
o uno spazio od un \n. Non ho il terminatore di stringa,
per cui se serve lo aggiungo manualmente così:
parola[ncarattere]='\0';
Quando andrò a stampare questa parola, basta stampare con una
fprintf(nomefile,"%s",parola);
dato che così stampa fino al '\0', compreso lo spazio o il a capo, in base a che parola ho letto!*/

In effetti forse così è anche più simile a quello che avevi fatto tu...credo
__________________
ubuntulinux | Windows 7
Trattato con: enghel | thunder01 | char66 | siemens | topogatto | ::tony design | alcol | mammabell | uazzamerican | niko0 | oldfield |
Ciocco@256 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:42   #9
Ciocco@256
Senior Member
 
L'Avatar di Ciocco@256
 
Iscritto dal: Sep 2003
Città: Torino
Messaggi: 752
Eh, sono arrivato un po' in ritardo
__________________
ubuntulinux | Windows 7
Trattato con: enghel | thunder01 | char66 | siemens | topogatto | ::tony design | alcol | mammabell | uazzamerican | niko0 | oldfield |
Ciocco@256 è offline   Rispondi citando il messaggio o parte di esso
Old 09-04-2006, 11:57   #10
VendeR
Member
 
L'Avatar di VendeR
 
Iscritto dal: Oct 2005
Messaggi: 290
ri_grazie per i consigli e le info
oggi se riesco provo ad implementare il codice!
__________________
_______________________________________________
AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S
---
Acer Aspire 5024
Apple MacBook Pro 13" 2.53GHz
VendeR è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
Il rumore delle 69 turbine è inso...
Google accende il primo satellite con ch...
Azioni Intel, il peggior crollo degli ul...
Toyota bZ4X diventerà un robotaxi...
Sam Altman vuole tutta la RAM nei datace...
L’ex CEO di Intel Gelsinger punta su una...
Techly, quattro nuovi supporti TV fra mo...
Mass Effect sacrificato per Star Wars: i...
Gemini, addio al copia e incolla per cor...
13 miliardi per un colpo di stato? NVIDI...
L'agente AI Wabi crea mini-app su misura...
Edge è il primo browser a supportare Acc...
L'IA di Firefox ora compila i moduli da ...
Tracking pixel nelle email: cosa cambia ...
La GeForce RTX 5080 da 24 GB potrebbe ar...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v