Je travaille sur le tri de plusieurs fichiers volumineux en C++. J'ai un fichier texte contenant les noms de tous les fichiers d'entrée, un sur chaque ligne. Je voudrais lire les noms de fichiers dans un à la fois, les stocker dans un tableau, puis créer un fichier avec chacun de ces noms. À l'heure actuelle, j'utilise fopen et fread, qui nécessitent des tableaux de caractères (j'essaie d'optimiser la vitesse), donc mes noms de fichiers sont lus dans un tableau de tableaux de caractères. Ces tableaux, cependant, doivent avoir une taille maximale fixée à l'avance, donc si le nom de fichier est plus petit que le maximum, le reste est plein d'ordures. Ensuite, lorsque j'essaie d'utiliser ce tableau comme nom de fichier dans fopen(), il ne reconnaît pas le fichier car il contient des données parasites à la fin de la chaîne. Comment puis-je résoudre ce problème? Voici mon code:Créer des fichiers à partir de noms de fichier dans un autre fichier C++
#include <iostream>
#include <fstream>
#include <string>
#include "stdafx.h"
#define NUM_INPUT_FILES 4
using namespace std;
FILE *fp;
unsigned char *buff;
FILE *inputFiles[NUM_INPUT_FILES];
int _tmain(int argc, _TCHAR* argv[])
{
buff = (unsigned char *) malloc(2048);
char j[8];
char outputstring[] = "Feelings are not supposed to be logical. Dangerous is the man who has rationalized his emotions. (David Borenstein)";
fp = fopen("hello.txt", "r");
string tempfname[NUM_INPUT_FILES];
//fp = fopen("hello.txt", "r");
for(int i=0;i<NUM_INPUT_FILES;i++)
{
fgets(tempfname[i], 20, fp);
cout << tempfname[i];
}
fclose(fp);
for(int i=0; i<NUM_INPUT_FILES;i++)
{
fp = fopen(tempfname[i], "w");
//fwrite(outputstring, sizeof(char), sizeof outputstring/sizeof(char), fp);
if(fp)
{
fclose(fp);}
else
cout << "sorry" << endl;
}
return 0;
}
, comment puis-je trouver aussi la taille d'un tampon pour écrire avec fwrite()?
Merci beaucoup, bsg