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

    [C/C++] dirent.h non riconosciuto

    visual C++ non mi vede <dirent.h> e quindi non riesco a compilare
    vorrei usare opendir, readdir, closedir ..qualcuno mi sa dire qual'è il problema?

    grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C/C++] dirent.h non riconosciuto

    Originariamente inviato da lechuck
    visual C++ non mi vede <dirent.h> e quindi non riesco a compilare
    vorrei usare opendir, readdir, closedir ..qualcuno mi sa dire qual'è il problema?
    Queste funzioni fanno parte dello standard POSIX. Il VC++ non le ha, sorry.

    Se vuoi, usa le API Win32.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    scusa ma sono ignorante ancora..
    potresti spiegarti meglio grazie..!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Ecco un semplice esempio:
    codice:
    #define STRICT
    #include <windows.h>
    #include <stdio.h>
    
    int main (void)
    {
        HANDLE          hFind;
        WIN32_FIND_DATA wfd;
        BOOL            bRet;
    
        hFind = FindFirstFile ("C:\\WINNT\\*", &wfd);
    
        bRet = hFind != INVALID_HANDLE_VALUE;
    
        while (bRet)
        {
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                printf ("<DIR>  %s\n", wfd.cFileName);
            else
                printf ("       %s\n", wfd.cFileName);
    
            bRet = FindNextFile (hFind, &wfd);
        }
    
        if (hFind != INVALID_HANDLE_VALUE)
            FindClose (hFind);
    
        return 0;
    }
    Stampa i file/directory presenti in C:\WINNT (su XP dovrebbe essere C:\WINDOWS).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    codice:
     bRet = hFind != INVALID_HANDLE_VALUE;
    Cosa significa?
    bRet è uguale a hFind che è diverso da INVALID_HANDLE_VALUE???
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    bret è uguale al risultato di (hFind != INVALID_HANDLE_VALUE); ovviamente bret sarà o true (hFind è diverso da INVALID_HANDLE_VALUE) o false (hFind è uguale a INVALID_HANDLE_VALUE). In sostanza, bret è true quando la ricerca è andata bene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da XWolverineX
    codice:
     bRet = hFind != INVALID_HANDLE_VALUE;
    Cosa significa?
    bRet è uguale a hFind che è diverso da INVALID_HANDLE_VALUE???
    Per capirlo meglio, si puo' scrivere

    bRet = (hFind != INVALID_HANDLE_VALUE);

    ovvero

    if (hFind != INVALID_HANDLE_VALUE)
    bRet=true;
    else
    bRet=false;

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.