Rechercher : dans
Par :

[[ C ]] Rename avec Scanf

Dernière réponse le 8 mai 2009 à 11:12:42 lolovahagn, le 6 mai 2009 à 20:26:21 
 Signaler ce message aux modérateurs

Bonjour,
J'ai un petit problème : je programme en C.
Et je voudrai utilisé la fonction rename pour renommer un fichier mais avec un scanf.

Ex :

Char nomDoc [100];
scanf ("%s", nomDoc);
rename ("test.txt", "%s.txt", nomDoc);

Merci d'avance
:) 

Configuration: Windows Xp Familiale
Internet explorer 7
mon materiel :
1 partie
http://www.casimages.com/img.php?i=080430030851283112009889.jpg
2 partie
http://www.casimages.com/img.php?i=080430031137283112009898.jpg

Meilleures réponses pour « [[ C ]] Rename avec Scanf » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
3D Secure / Verified by Visa / SecureCode: Qu'est-ce que c'est ? VoirDepuis octobre 2008, les banques et commerçants en ligne ont commencé à adopter le système 3DSecure pour les paiements sur Internet. Qu'est-ce que c'est ? 3DSecure est appelé "Verified by Visa" chez Visa, et "SecureCode" chez Mastercard. (Les logos...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

fiddy, le 6 mai 2009 à 20:40:32

Salut,

char nomDoc[100];
scanf("%99s", nomDoc);
rename("test.txt", nomDoc); 

Cdlt
Google is your friend

Répondre à fiddy

2

lolovahagn, le 7 mai 2009 à 17:54:24

Ca marche
sauf que si je tape : test
il me renome test.txt ==> test donc sans format ( se qui me donne un ficher illisible ) !! :) 

Répondre à lolovahagn

3

loupius, le 7 mai 2009 à 18:32:23

Ben oui c'est bizarre que le programme ne fasse que ce que tu lui demandes ! Il pourrait quand même réfléchir et ajouter l'extension de lui-même ! ;-)
Bon moi finalement ça me rassure... et toi il faut que tu modifies ton programme; c'est à toi de gérer cette extension.
D'autre part ton fichier n'est pas devenu illisible; c'est le système qui fait que lorsque tu cliques sur ton fichier qui n'a pas d'extension, il ne trouve pas d'association qui lui dit quoi faire de ce fichier. Tu as deux solutions: soit changer l'association, soit changer le nom du fichier.
Bon choix.

Répondre à loupius

4

lolovahagn, le 8 mai 2009 à 09:37:04

C'est bon j'ai trouvé la solution :
Je crée une variable char puis je concatène les deux chaine:

char chaine1[100] = ".txt", chaine2[] = "test";

strcat(chaine1, chaine2); // On concatène chaine2 dans chaine1

:) 

Répondre à lolovahagn

5

 fiddy, le 8 mai 2009 à 11:12:42

Salut,
Ca serait mieux si t'inversais le contenu de tes tableaux. Sinon chaine1 contiendra .txttest au lieu de test.txt.
Ce qui donne :

char chaine1[100] = "test", chaine2[] = ".txt";

strcat(chaine1, chaine2); // On concatène chaine2 dans chaine1 

Google is your friend

Répondre à fiddy