que - Lea el archivo de texto en Array char. C++ ifstream
manejo de archivos en c++ fstream (4)
Estoy tratando de leer todo el archivo.txt en una matriz de caracteres. Pero teniendo algunos problemas, sugerencias por favor =]
ifstream infile;
infile.open("file.txt");
char getdata[10000]
while (!infile.eof()){
infile.getline(getdata,sizeof(infile));
// if i cout here it looks fine
//cout << getdata << endl;
}
//but this outputs the last half of the file + trash
for (int i=0; i<10000; i++){
cout << getdata[i]
}
Cada vez que lee una nueva línea sobrescribe la anterior. Mantenga una variable de índice iy use infile.read(getdata+i,1)
luego incremente i.
No necesita leer línea por línea si planea aspirar todo el archivo en un búfer.
char getdata[10000];
infile.read(getdata, sizeof getdata);
if (infile.eof())
{
// got the whole file...
size_t bytes_really_read = infile.gcount();
}
else if (infile.fail())
{
// some other error...
}
else
{
// getdata must be full, but the file is larger...
}
std::ifstream infile;
infile.open("Textfile.txt", std::ios::binary);
infile.seekg(0, std::ios::end);
size_t file_size_in_byte = infile.tellg();
std::vector<char> data; // used to store text data
data.resize(file_size_in_byte);
infile.seekg(0, std::ios::beg);
infile.read(&data[0], file_size_in_byte);
Use std::string
:
std::string contents;
contents.assign(std::istreambuf_iterator<char>(infile),
std::istreambuf_iterator<char>());