PRB de copy de fichier dans char * - C++ - Programmation
Marsh Posté le 28-04-2004 à 20:56:56
ca dit quoi comme erreur exactement ?
Marsh Posté le 28-04-2004 à 21:06:31
Code :
|
En fait, tu as correctement lu le fichier a.jpg en mémoire, mais quand tu écris le résultat, tu t'arretes au premier caractère \0.
Marsh Posté le 28-04-2004 à 21:09:28
euh ouais, ou alors il continue de lire indefiniment parce que a la creation du buf[100000] y'a n'importe quoi dedans...
non ?
NULL c'est pas different de '\0' sinon ???
Marsh Posté le 28-04-2004 à 21:22:19
myst78 a écrit : euh ouais, ou alors il continue de lire indefiniment parce que a la creation du buf[100000] y'a n'importe quoi dedans... |
Par definition, NULL == 0 et '\0' == 0 aussi
Marsh Posté le 28-04-2004 à 21:26:05
ben mon probleme sa fait un acess violation a une adresse memoire mais je suis po loin de la solution alors??
c'est juste une question de gestion memoire ??
Marsh Posté le 28-04-2004 à 21:28:45
Puisque i contient la taille du buffer à la fin de la lecture, pourquoi tu n'utilises pas cette information pour réécrire juste ce qu'il faut ? Par exemple avec un for (j=0;j<i;j++)
Et encore mieux, pourquoi tu passes par un buffer intermediaire et tu ne fais en même temps la lecture et l'écriture ?
Marsh Posté le 28-04-2004 à 21:33:02
enfet je me rapelle bien il ya toujour null a la fin de ce qui a dnas le tableau mai peut etre faut l'initialiser a null
Marsh Posté le 28-04-2004 à 21:34:15
oué ok mais enfet je veut savoir si c'est la bone methode surtou si je par sur une bonne base
Marsh Posté le 28-04-2004 à 21:35:02
tckoullou a écrit : enfet je me rapelle bien il ya toujour null a la fin de ce qui a dnas le tableau mai peut etre faut l'initialiser a null |
Oui mais non. Tu as un tableau de char et NULL c'est le char 0. Peut-être bien que ton buffer se termine par un char 0, mais si tu lit un fichier binaire il y aura très probablement d'autres char 0 en plein milieu. Par contre cela n'arrive pratiquement jamais avec un fichier texte.
Marsh Posté le 28-04-2004 à 21:36:59
enfet je dois stocker le fichier dans un buffer char * et l'envoyer par le rezo via le serveur et ensuite ecrire le fichier dans le client
Marsh Posté le 28-04-2004 à 21:42:09
non mais merde c'est le weekend là ....
des char*, eof, des .h, un getch ... il est ou mon bot bordel
Marsh Posté le 28-04-2004 à 21:48:18
http://cplusplus.com/ref/iostream/istream/seekg.html
y a un exemple
NB : l'exemple est juste un exemple, ce n'est pas une bonne façon de copier un fichier. l'exemple est lui même critiquable (notemment au niveau du int length, voir la doc pour le streampos, etc)
Marsh Posté le 28-04-2004 à 21:58:37
ok je pense que je vais yariver avec ce desrciptif c'est cool merci
Marsh Posté le 28-04-2004 à 20:48:32
bonjour alors j'ai un probleme pour copier un fichier dans un buffer de char * sa marche niquel pour du txt mais po pour un exe par exemple.
car apres je veut envoyer ce char * par le rezo avec une fonction de ty pe send(socket,char *buffer,etc....
voila le code qui copy le fichier dans un buffer avec un curseur
j'ai tou fait moi meme alors je sais po si c'est propre mais en toucas sa marche, mais que sur les txt .enfet il me faut trouver le moyer de copier un fichier compler dans un tableau de char buf[SIZE_OF_FILE]
Merci pour vo reponces