begin process at 2010 02 10 07:08:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Passage d'une lettre en paramètre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passage d'une lettre en paramètre

lundi 19 juin 2006 à 16:53:32 | Passage d'une lettre en paramètre

ipeteivince

Membre Club
Salut

Voila, je veux ecrire un soft qui me donne la taille d'un lecteur (disque)
Je veux pourvoir l'apeller de la facon suivante:
disquespace c //renvoie la taille du disque c:

Voici le code, je ne comprend pas pourquoi le caractère entré n'est pas celui que j'ai tapé !

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(char lect)
{
/* Declaration des variables */
/* char lecteur[5] = "c:\\"; lettre du lecteur a scanner */

char lecteur[5]= " :\\";
lecteur[0] = lect;

unsigned long Secteurs_Par_Cluster, Bytes_Par_Secteurs, Cluster_libre, Total_Cluster; /* stockage des infos */
unsigned long espace_libre, espace_utilise, espace_total; /* permettra de traiter les infos */


GetDiskFreeSpace(lecteur,&Secteurs_Par_Cluster,&Bytes_Par_Secteurs,&Cluster_libre,&Total_Cluster);

espace_libre = ((Cluster_libre * Secteurs_Par_Cluster * Bytes_Par_Secteurs)/1024)/1024;
espace_total = (((Total_Cluster * Secteurs_Par_Cluster)/1024)*Bytes_Par_Secteurs)/1024;
espace_utilise = espace_total - espace_libre;

/* Affichage des resultats */
printf("lecteur= %c:\\\n",lecteur[0]);
printf("Secteur par cluster= %ld\n",Secteurs_Par_Cluster);
printf("Bytes par secteurs= %ld\n",Bytes_Par_Secteurs);
printf("Cluster libres= %ld\n",Cluster_libre);
printf("Nombre total de cluster= %ld\n",Total_Cluster);
printf("\nCapacite du lecteur : %ld Mo",espace_total);
printf("\nEspace utiliser : %ld Mo",espace_utilise);
printf("\nEspace libre : %ld Mo\n",espace_libre);


}

Soyez indulgents, je débute en C, merci

lundi 19 juin 2006 à 17:01:55 | Re : Passage d'une lettre en paramètre

vecchio56

Administrateur CodeS-SourceS
Tu ne peux passer un paramètre char comme ca, il faut le faire de manière standard:
int main(int argc, char* argv[])
argc = nombre de paramètres
argv = les paramètres.
-Tu vérifies avec argc qu'un paramètre a bien été passé
-*argv[1] contient la première lettre du premier paramètre

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 19 juin 2006 à 17:03:39 | Re : Passage d'une lettre en paramètre

luhtor

Tu peux pas écrire ce que tu as fait. La fonction main prend des arguments tres précis.

int main(int argc, char * argv[])
{
char lect;

if (argc != 2) return 1; // argument incorrect
else lect = argv[1][0];

/* Declaration des variables */
/* char lecteur[5] = "c:\\"; lettre du lecteur a scanner */

char lecteur[5]= " :\\";
lecteur[0] = lect;

unsigned long Secteurs_Par_Cluster, Bytes_Par_Secteurs, Cluster_libre, Total_Cluster; /* stockage des infos */
unsigned long espace_libre, espace_utilise, espace_total; /* permettra de traiter les infos */


GetDiskFreeSpace(lecteur,&Secteurs_Par_Cluster,&Bytes_Par_Secteurs,&Cluster_libre,&Total_Cluster);

espace_libre = ((Cluster_libre * Secteurs_Par_Cluster * Bytes_Par_Secteurs)/1024)/1024;
espace_total = (((Total_Cluster * Secteurs_Par_Cluster)/1024)*Bytes_Par_Secteurs)/1024;
espace_utilise = espace_total - espace_libre;

/* Affichage des resultats */
printf("lecteur= %c:\\\n",lecteur[0]);
printf("Secteur par cluster= %ld\n",Secteurs_Par_Cluster);
printf("Bytes par secteurs= %ld\n",Bytes_Par_Secteurs);
printf("Cluster libres= %ld\n",Cluster_libre);
printf("Nombre total de cluster= %ld\n",Total_Cluster);
printf("\nCapacite du lecteur : %ld Mo",espace_total);
printf("\nEspace utiliser : %ld Mo",espace_utilise);
printf("\nEspace libre : %ld Mo\n",espace_libre);


}

J'ai pas testé, mais ca doit marcher. Le premier arguement argv[0] correspond au nom de l'éxécutable, les paramètres rentrés par l'utilisateur commence a partir de argv[1].
lundi 19 juin 2006 à 17:06:03 | Re : Passage d'une lettre en paramètre

BruNews

Administrateur CodeS-SourceS
GetDiskFreeSpace() est à bannir depuis Win95-SE et la prise en charge des grands disque.
Employer GetDiskFreeSpaceEx() pour résultats corrects.

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : espace, lecteur, libre, cluster, secteurs


Répondre à ce message

Sujets en rapport avec ce message

COMMENT TROUVER LECTEUR LIBRE EN VC++? [ par 25230 ] Bonjour,l'un d'entre vous sait-il comment récupérer en VC++ la lettre du premier lecteur disponible sur un PC ?Merci pour vos réponses,Thierry Espace libre d'un DD à distance [ par Elfus ] Bonjour à tous :) J'aimerai pouvoir connaître l'espace disponible sur un disque dur à distance. L'équivalent d'un GetDiskFreeSpace mais pas en local espace disque libre [ par mat74 ] salut a ts je cherche un moy de determiner l'espace libre sur une de mes partition et je sais vraiment pas comment faire car la seule fonction pr cela Test chaine Vide [ par ryseryse ] bonjour, voilaj'ai un petit souci je pense pas que ce soit compliquéje veux juste tester une chaine nulle.MAIS je suis completement BLOQUEje n'arrive Changez Attribut (Chmod) d'un fichier sous Windows [ par mike0419 ] bonjour , je cherche comment changez l'attribut (chmod)lecteur Seule d'un fichier pour le mettre en ecriture (enlevé le lecteur seule koi lol)voila me namespace ou espace de nom [ par mat74 ] salut a ts je cherche comment definir et utiliser les namespace .merci d'avance @+ Aide AVANT LUNDI pliz [ par Gipsy974 ] bnojour ami programmeur j ai un projet a rendre mais me vopila confronter a un choix c est a propos des operateurs >>j ai fait deux codesle contenu im Timer en espace noyau , comment faire ? [ par ragedragon ] Salut à tous, je cherche un moyen de pouvoir réaliser un timer dans un driver sous linux en C bien sur. Aucun souci en espace utilisateur mais au sein Nom de Lecteur de disque [ par gagah1 ] Salut!Quelle fonction (en win32) dois-je appeller pour avoir le nom des disques ou des lecteurs.Exemple : BOOT[C:] , BACKUP[D:], RECOVER[E:], LecteurD problème espace mémoire [ par borgeomi ] borgeomibonjouuuuuuur !!!!!encore une question stupide d'un programmeur cobol MVSsous VISUAL C ++ 6J'ai crée une classe Personne du stylePersonne Tab


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales