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

    [C] File di testo a vettore di stringhe

    Ragazzi abbiamo un altro problema:

    Non riesco a memorizzare una stringa da un file di testooooo!!!!
    Vi posto quello ke faccio:

    #include <stdio.h>
    #define max 50

    int main () {
    char q[max];

    FILE *a=fopen ("a.txt","r");
    fscanf(a,"%s", q);
    printf ("%s", q);

    fclose(a);

    getche ();
    return 0;
    }

    sono disperato xkè in un esercizio di questo tipo precedente in cui la sintassi era ottima cmq, non dava niente il programma, ma in qst ultimo esercizio va addirittura in crash!!!
    "E' giunta l'ora, amiche care, ormai di chiacchierar, di cappellini di chiffon di cavoli o di re, di come il mare va in bollor se i gatti san volar"

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    edit

    che errore ti da? compila almeno?

  3. #3
    io proverei con fgets(), tanto non devi formattare niente dato che il tuo format è un semplice "%s"

  4. #4
    ho risoltooooooooooooo grazie a tutti siete sempre gentili e utilissimi grazie davverooooooooo
    "E' giunta l'ora, amiche care, ormai di chiacchierar, di cappellini di chiffon di cavoli o di re, di come il mare va in bollor se i gatti san volar"

  5. #5
    Scusatemi altro problema... come faccio, in acquisizione stringa da un file a ignorare gli spazi?

    es: file: a b c d e f

    come faccio a memorizzare le stringhe in un unico vettore senza gli spazi in modo ke il vettore stringa immagazzini "abcdef"?

    grazie
    "E' giunta l'ora, amiche care, ormai di chiacchierar, di cappellini di chiffon di cavoli o di re, di come il mare va in bollor se i gatti san volar"

  6. #6
    prova cosi

    Codice PHP:

    char 
    *tua stringa;

    for( 
    0; *(i+k) != '\0' k++ ){
    if(*(
    i+k) == ' ')
          continue;

    *(
    i+m) = *(i+k);
    m++;



  7. #7
    il carattere non riconosciuto è slash zero.

    assumiamo una stringa C terminante con tale carattere

  8. #8
    Scusa la mia ignoranza Bloom ma potresti spiegarmi l'algoritmo ke hai postato xk non ci ho capito molto...grz.
    So ke il carattere di fine stringa è '\0' e di solito viene dato dallo scanf in automatico ma è proprio questo il problema. Qnd acquisisci qlcs come stringa il compilatore appena incontra uno spazio ferma l'acquisizione troncando la stringa infatti se voglio acquisire "ciao sto bene" come una sola stringa io m aspetto di caricare |c|i|a|o| |s|t|o| |b|e|n|e|\0| invece incontrato il primo spazio qst vien interpretato come \0 e si ferma quindi mi dà "ciao" e basta.
    E' mai possibile ke devo creare un vettore stringa ogni parola?
    "E' giunta l'ora, amiche care, ormai di chiacchierar, di cappellini di chiffon di cavoli o di re, di come il mare va in bollor se i gatti san volar"

  9. #9
    Man scanf

    s Matches a sequence of non-white-space characters; the next
    pointer must be a pointer to character array that is long enough
    to hold the input sequence and the terminating null character
    (’\0’), which is added automatically. The input string stops at
    white space or at the maximum field width, whichever occurs
    first.


    ti consiglio di non usare queste funzioni a meno che tu non debba effettuare delle conversioni

    per esempio mettere in tre variabili tre numeri dalla stringa "44 98 54"
    in cui faresti la format "%d %d %d, I, J, K"

    se devi copiare una stringa usa strcpy(), e in generale tutte le funzioni in string.h

  10. #10
    ho capito il C è una merda e dovrò fo**ermi abbastanza vero?...lol
    "E' giunta l'ora, amiche care, ormai di chiacchierar, di cappellini di chiffon di cavoli o di re, di come il mare va in bollor se i gatti san volar"

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.