Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C++] conteggio caratteri

    Ciao a tutti,
    vorrei sapere se c'è un comando, una funzione in c++ che una volta aperto un file (ad esempio c:\\prova.txt) mi dica quale carattere c'è in una determinata posizione nel file.
    Ad esempio potrei voler sapere se nel file prova.txt alla posizione 3,0 ci sia una 'a'.......... come si può fare??? Ho provato con fseek() ma lui mi posiziona solo il cursore in quel punto e non riesco a fare un confronto che mi dica se in quella posizione ci sia o no una 'a'.

    Spero di essere stata chiara nel chiedere!!!
    Aspetto vostri suggerimenti
    grazie mille!
    ciao

  2. #2
    In C++ i don't know.

    In C fai..

    codice:
    fseek (fp, posizione, 0); // ricordati che esiste anche la posizione 0.
    char c;
    c = fgetc (fp);
    if (c == 'A') ... // have you know?
    Capito?

  3. #3
    Grazie, adesso provo se funziona........... in pratica mi mancava
    c = fgetc (fp);
    Adesso verifico!!!!!

    Grazie

  4. #4
    Ok, ottimo!!! funziona perfettamente.
    Vorrei sapere però se una volta individuato il carattere che mi interessa posso copiarmi in un altro file tutta la riga che lo contiene(evitando di copiarmi carattere per carattere!!)...

    Grazie
    ciao

  5. #5
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Sì, puoi usare fgets, il cui prototipo è:

    char *fgets(char *s, int size, FILE *stream);

    P.S. Puoi compattare il codice così

    codice:
    if ((c = fgetc (fp)) == 'A') ...
    ChReAn
    -------------------

    Slackware 9.1 powered

  6. #6
    Avevo già visto quel comnado ma non ho capito bene la sintassi
    char *fgets(char *s, int size, FILE *stream);
    Cosa rappresentano quei paramentri che gli passo, in particolare int size, cos'è? Il numero di caratteri che deve prendere????

    Grazie
    ciao!

  7. #7
    codice:
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    string buf;
    int a_count = 0;
    int b count = 0;
    char* lettere[] = { "a", "b"};
    for( int i=0; i< buf.length(); i++ )
    {
    	for( int j=0; j < 2; j ++ )
    	{
    		swhitc( buf.find(lettere[j]) )
    		{
    			case "a":
    				a_count++;
    			case "b":
    				b_count++;
    			default:
    				cerr << "Lettere non valida\n";
    		
    		}
    	}
    }
    return 0;
    }
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  8. #8
    Grazie mille!!!
    Adesso cerco di capire bene il codice che mi hai postato e tento di sistemare il mio programma!!

    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.