Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [C/C++] Windows 7/Vista - fopen

    Ciao a tutti ragazzi! Ho un DISPERATO bisogno d'aiuto!!!
    Non mi funziona fopen in Windows 7. Vi spiego.
    Su XP un programmino stupido come questo funziona alla grande:

    Codice PHP:

    int main
    (int argccharargv[]) {

        
    FILEoutStream=fopen("outputList.txt","w+r");
        
    charline="prova";



        for (
    int i=1i<100+1; ++i) {
         
    fputs(line,outStream);
         
    fputs("\n",outStream);
        }

        
    fclose(outStream);

        
    system("PAUSE");
        return 
    0;

    Invece mi sono installato Win 7 e il programma quando lo eseguo sembra andare bene, poi però NON crea nessun file di testo. Questo stesso su XP va bene (tenete presente ke ho omesso le include ecc...). Insomma come mai? Lo setto anche come amministratore...
    Aiuto!!!

  2. #2
    Dove stai cercando di salvare il file? E perché non verifichi il valore restituito da fopen?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    questo mi sa non è C++

    codice:
    FILE* outStream=fopen("outputList.txt","w+r");
    Alla batteria dai retta ballA

  4. #4
    è c/c++ ma fopen mi restituisce 0(false)!!

  5. #5
    Risulta quindi evidente che il problema sta nel fatto che non riesce ad aprire il file, con ogni probabilità per un accesso negato. Dove stai cercando di aprirlo?
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Dilemma risolto:
    la sintassi per qualche motivo non viene accettata.,
    cioè su win xp:
    FILE* outStream=fopen("outputList.txt","w+r");
    andava tutto ok,
    ma da windows vista la sintassi DEVE essere questa:
    FILE* outStream=fopen("outputList.txt","w+");
    cioè senza "r".
    Secondo voi come mai?

  7. #7
    Ho riguardato adesso la documentazione della fopen... w+r non è un modo valido di apertura di un file, se prima te lo accettava era per un baco della CRT. Non l'ho visto al volo perché non uso mai le funzioni di IO del C, ma gli stream C++. A questo proposito, perché non fai lo stesso? In C++ le funzioni di IO come la fopen, la fprintf, ... sono obsolete, dovresti utilizzare gli stream.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Originariamente inviato da MItaly
    Ho riguardato adesso la documentazione della fopen... w+r non è un modo valido di apertura di un file, se prima te lo accettava era per un baco della CRT. Non l'ho visto al volo perché non uso mai le funzioni di IO del C, ma gli stream C++. A questo proposito, perché non fai lo stesso? In C++ le funzioni di IO come la fopen, la fprintf, ... sono obsolete, dovresti utilizzare gli stream.
    Vero, ora uso solo gli stream anche perchè ti permettono + funzioni sono + veloci e + ordinati.


    Scusa per curiosità: hai parlato di baco della CRT. Cos'è la CRT?

  9. #9
    Originariamente inviato da White_Dragon
    Vero, ora uso solo gli stream anche perchè ti permettono + funzioni sono + veloci e + ordinati.
    Tutto vero, tranne il fatto che sono più veloci. Quello proprio no.
    Scusa per curiosità: hai parlato di baco della CRT. Cos'è la CRT?
    C RunTime, la libreria standard C. Probabilmente in realtà era stato fatto apposta per supportare applicazioni bacate che usavano erroneamente stringhe di formato non supportate, oppure per fare più in fretta non stava ad esaminare completamente la stringa, estraendone giusto le informazioni che le servivano per aprire il file.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Originariamente inviato da MItaly
    Tutto vero, tranne il fatto che sono più veloci. Quello proprio no.

    C RunTime, la libreria standard C. Probabilmente in realtà era stato fatto apposta per supportare applicazioni bacate che usavano erroneamente stringhe di formato non supportate, oppure per fare più in fretta non stava ad esaminare completamente la stringa, estraendone giusto le informazioni che le servivano per aprire il file.
    Mmm... lavevo letto da qulke parte che erano + veloci e mi era pure sembrato...
    a questo punto se mi dici così mi viene da chiederti un'ultima cosa e scusami per le troppe domande ^__^

    Secondo te se voglio scrivere una mole di dati +tosto grande, ti faccio un es. banale:
    Riscrivere un filmato AVI correggendo le parti errate o chunk di byte 0x00, sempre in c/c++ che metodi mi consiglieresti da usare? Avrei bisogno di metodi veloci per scrivere file di 600/700 mb...

    Grazieee e scusa ankora

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.