Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 06-10-2005, 20.41.13   #1
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
[C++] Problemino con i file ti txt

Ok, stavo giusto facendo uno di quei bei programmini per ripassare la gestione di file di txt che se ti vengono sei tutto contento ma in caso contrario puoi dire addio al tuo fegato per l'intera serata.

Problema: in un file di txt biosgna vedere se sono presenti delle vocali e in caso affermativo scrivere al loro posto un #.

Perchè di grazia si impalla tutto?

Codice:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

void Vocale(FILE *pf)
{
 pf=fopen("c:\\ese.txt", "r+"); // Apro lo stream, posso leggere e scrivere sul file
 char var=fgetc(pf); // var punta al primo carattere del file

  while (!feof(pf)) /* controllo di eventuali presenze di vocali nel file di txt, se presente
		       viene sostituita con un # */
  {
   if ( (var=='a') || (var=='e') || (var=='i') || (var=='o') || (var=='u') )
   {
    fputc('#',pf); // scrivo il carattere # al posto di una vocale
    fseek(pf,-1,1); /* dato che il comando fputc dopo aver scritto un carattere avanza di una posizione
		       con fseek torno di nuovo indietro di una per poi incrementare il puntatore al file var */
   }

   var=fgetc(pf); // var punta al carattere successivo

  }

 fclose(pf); // Chiudo lo stream
}

Ultima modifica di Downloader : 06-10-2005 alle ore 20.46.55
Downloader non è collegato   Rispondi citando
Vecchio 06-10-2005, 21.25.01   #2
Semi.genius
Guest
 
Messaggi: n/a
1. devi mettere fseek prima del fputc sennò il file te lo sovrascrive nella posizione dopo (l'fgetc iniziale lo avanza)
2. devi costringerlo alla scrittura dopo una lettura

perciò basta che modifichi
if ( (var=='a') || (var=='e') || (var=='i') || (var=='o') || (var=='u') )
{
fseek(pf,-1,1);
putc('#',pf);
fflush(pf);
}
ps ricordati la stdlib per fflush
  Rispondi citando
Vecchio 07-10-2005, 09.22.57   #3
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Se vuoi ricerca "stream" nel forum nella sezione programmazione.
Avevamo trattato l'argomento streaming su file in C++
LoryOne non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
problema memoria josefh♣ Windows 7/Vista/XP/ 2003 2 28-08-2007 11.03.42
HELP - Dato un file txt con dei nomi ogni rigo, come fare a copiare un certo file, ri Cavallaudo Windows 7/Vista/XP/ 2003 0 18-08-2007 20.16.41
[Windows XP] Problemi con il masterizzatore DVD Qgino Hardware e Overclock 13 16-10-2005 21.11.45
computer da immondizzia ziopazzo Windows 9x/Me/NT4/2000 3 09-05-2004 01.20.30
problema con file .doc rovinato in office xp 2003...poi risolto... cippico Office suite 0 30-04-2004 10.12.07

Orario GMT +2. Ora sono le: 07.15.56.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.