Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C] Rinominare un file

  1. #1
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Non puoi rinominare il file se e' aperto. O lo chiudi ... o non lo apri ... e poi usi il rename ...

  2. #2
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    ho letto che strncpy non aggiunge automaticamente un terminatore di stringa, come faccio ad aggiungerlo manualmente nella posizione della stringa che desidero?

    Impossibile (se parli della strcpy)

  3. #3
    Originariamente inviato da ciromosketta
    a dir la verità il codice postato su in alcuni casi non funziona, ad esempio:
    se l'immagine iniziale si chiama fingerprint240x320_8bpp.raw , in uscita ottengo correttamente fingerprint240x320_8bpp_noisy.raw
    con un immagine di nome lena512x512_8bpp.raw ottengo lena512x512_8bppWñN€h$=_noisy.raw

    ho letto che strncpy non aggiunge automaticamente un terminatore di stringa, come faccio ad aggiungerlo manualmente nella posizione della stringa che desidero?
    Si è vero strncpy() non aggiunge il terminatore di stringa, quindi devi aggiungerlo tu.
    Potresti, invece, utilizzare una funzione che controlli l'effettiva lunghezza dell'estenzione e
    modifichi il nome del file di conseguenza.
    Ad esempio :

    codice:
    #include <iostream.h>
    
    void fileNameSuffix(char *newFileName, char *fileName)
    {
    	char ext[21];
    	int len = strlen(fileName), posp;
    	for( posp = len; fileName[posp]!='.' && posp>=0; posp--);
    	strncpy(ext, &fileName[posp], 20);
    	ext[20]='\0';
    	strcpy( newFileName, fileName);
    	newFileName[ posp ] = '\0';
    	strcat( newFileName, "_kuwa");
    	strcat( newFileName, ext);
    }
    
    int main()
    {
    	char newName[260];
    	char name[260] = "lena512x512_8bpp.raw";
    	fileNameSuffix( newName, name);
    	printf("newName = \"%s\"\n", newName );
    	return 0;
    }
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

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.