2 Questions : Concanténation & ...
Lord_Vking
Messages postés
44
Statut
Membre
-
Lord_Vking -
Lord_Vking -
Bonjours, j'ai deux questions bien facile...
premierement comment puis-je concanténé disons :
string nom;
cin >> nom;
string bob = "Mon nom est " + nom + ".";
???? Ce dois pas être très compliquer, mais quand tu sais pas.. tu sais pas :/
--------------------------------2------------------------------
Comment je peux écrire dans un fichier txt ? disons que je veut mettre le contenue de bob(string) dans un fichier .txt ... comment je fait ?!
premierement comment puis-je concanténé disons :
string nom;
cin >> nom;
string bob = "Mon nom est " + nom + ".";
???? Ce dois pas être très compliquer, mais quand tu sais pas.. tu sais pas :/
--------------------------------2------------------------------
Comment je peux écrire dans un fichier txt ? disons que je veut mettre le contenue de bob(string) dans un fichier .txt ... comment je fait ?!
A voir également:
- 2 Questions : Concanténation & ...
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Gta 6 trailer 2 - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp avec 2 sim - Guide
10 réponses
Salut!
Si avais appris le C tu saurais :-P
Mais comme je ne suis pas vache je vais te donner les fonctions en C.
ou bien
Si avais appris le C tu saurais :-P
Mais comme je ne suis pas vache je vais te donner les fonctions en C.
#include <string.h> char *strcat(char *s1, const char *s2)
ou bien
#include <string.h> char *strncat(char *s1, const char *s2, size_t n)
Pour écrire seulement
Avec ptr un pointeur vers la chaine de caractère/entier à écrire, size la taille d'un élément de la chaine, nmemb le nombre d'élément contenu dans cette chaine et stream le flux ouvert pointant vers le fichier.
Bien entendu il faut d'abord ouvrir le fichier avec:
Pour lequel on utilise mode == "w" comme write pour l'écriture d'un fichier texte.
Une fois que l'on utilise plus ce flux (stream) on le fermera par:
#include <stdio.h> size_t fwrite(const char *ptr, size_t size, size_t nmemb, FILE *stream);
Avec ptr un pointeur vers la chaine de caractère/entier à écrire, size la taille d'un élément de la chaine, nmemb le nombre d'élément contenu dans cette chaine et stream le flux ouvert pointant vers le fichier.
Bien entendu il faut d'abord ouvrir le fichier avec:
#include <stdio.h> FILE *fopen(const char *filename, const char *mode);
Pour lequel on utilise mode == "w" comme write pour l'écriture d'un fichier texte.
Une fois que l'on utilise plus ce flux (stream) on le fermera par:
#include <stdio.h> int fclose(FILE *stream);
Mouarf.. j'te comprend vraiment pas :( chui débutant moi... c'est bien bo me sortir les prototypes, mais je commence, je sais pas comment les utliser :/ si tu pourrait me donner un exemple simple et concret... avec les chose au bonne place... Svp :) ce serait vraiment sympa... ( pour une ou les deux si possible ) (concanténation et écriture dans un fichier )...
Merci a lavance jeune maitre ^^
Merci a lavance jeune maitre ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon on va faire simple:
La fonction strcat va concaténer la chaine "compil" et "ateur" pour donner "compilateur" et elle retourne un pointeur vers la chaine concaténée qui est s1. En effet la fonction écrit dans s1 alors il faut prévoir la place suffisante.
Même chose avec strncat sauf au lieu de cherche le caractère de fin de chaine pour s2 ce sont seulement les n 1er caractère qui écraseront le caractère de fin de chaine de s1.
Ceci donnera "compilate".
char s1[10] = "compil"; char s2[5] = "ateur"; strcat(s1, s2);
La fonction strcat va concaténer la chaine "compil" et "ateur" pour donner "compilateur" et elle retourne un pointeur vers la chaine concaténée qui est s1. En effet la fonction écrit dans s1 alors il faut prévoir la place suffisante.
Même chose avec strncat sauf au lieu de cherche le caractère de fin de chaine pour s2 ce sont seulement les n 1er caractère qui écraseront le caractère de fin de chaine de s1.
char s1[10] = "compil"; char s2[5] = "ateur"; strcat(s1, s2, 3);
Ceci donnera "compilate".
Maintenant en ce qui concerne l'écriture d'un fichier texte:
FILE *stream;
/* creation ou ecrasement d'un fichier en lecture et ecriture */
stream = fopen("fichier.txt", "w");
char chaine[256] = "message";
/* ecriture de 7 octet */
fwrite(chaine, sizeof(char), 7, stream);
/* fermeture du flux */
fclose(stream);
Pour ton exemple un.. de concanténation MERCI bcp.. :) c simple, mais, mon compilateur...
c:\Documents and Settings\Yan\Mes documents\Visual Studio Projects\teste\teste.cpp(8): error C2117: 's2' : array bounds overflow
c:\Documents and Settings\Yan\Mes documents\Visual Studio Projects\teste\teste.cpp(8) : see declaration of 's2'
c koi ce overflow... ?
c:\Documents and Settings\Yan\Mes documents\Visual Studio Projects\teste\teste.cpp(8): error C2117: 's2' : array bounds overflow
c:\Documents and Settings\Yan\Mes documents\Visual Studio Projects\teste\teste.cpp(8) : see declaration of 's2'
c koi ce overflow... ?
Bon.. La il me fait une grosse Erreur, quand je le launch ( il se compile ) ...
#include<iostream>
#include<string>
using namespace std;
int main()
{
char s1[11] = "compil";
char s2[6] = "ateur";
strncat(s1, s2, 5);
cout << s1;
cout << endl;
cout << s2;
}
Il me dit :::
Stack around the variable 's1' was corrupted.
Merci encore de ton énorme patience !
PS : Ton code pour ecrire dans un fichier.. NUMÉRO 1.. Merci infiniment.. me reste ke la concanténation ^^
#include<iostream>
#include<string>
using namespace std;
int main()
{
char s1[11] = "compil";
char s2[6] = "ateur";
strncat(s1, s2, 5);
cout << s1;
cout << endl;
cout << s2;
}
Il me dit :::
Stack around the variable 's1' was corrupted.
Merci encore de ton énorme patience !
PS : Ton code pour ecrire dans un fichier.. NUMÉRO 1.. Merci infiniment.. me reste ke la concanténation ^^
Pour utiliser les bibliothèques standard C++ compatible C il faut ajouter un "c" devant le nom de l'en-tête et supprimer l'extension. Les en-têtes C++ compatible C sont du type <cheader>.
Dans ton programme tu devrais écrire <cstring> au lieu de string et de même <cstdio>. De plus ta fonction main est typé int cependant tu ne renvoie aucun code d'erreur pour confirmer sa bonne exécution.
Tu peux essayer ceci:
Dans ton programme tu devrais écrire <cstring> au lieu de string et de même <cstdio>. De plus ta fonction main est typé int cependant tu ne renvoie aucun code d'erreur pour confirmer sa bonne exécution.
Tu peux essayer ceci:
#include <cstdio>
#include <cstring>
using namespace std;
int main(void)
{
char s1[11] = "compil";
char s2[5] = "ateur";
strncat(s1, s2, 3);
scanf("s1 = %s", &s1);
scanf("s2 = %s, &s2);
printf("%s\n", s1);
return EXIT_SUCCESS;
}