
ayuda para resolver este error
Publicado por Eric (1 intervención) el 09/06/2022 00:50:54
Hola soy nuevo y estoy creando un programa que cree archivos y les asigne un numero, cada que creas un nuevo archivo el numero asignado aumenta en 1 pero a la hora de actualizar el conteo de registros me salta este error y no puedo compilar.
[Error] no match for 'operator<<' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'char [50]')
Este es el código completo:
El archivo donde llevo el conteo esta en la misma direccion que el programa, es un txt llamado conteo.txt y dentro tiene un 0 que seria el valor inicial.

[Error] no match for 'operator<<' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'char [50]')
Este es el código completo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
#include <cstdlib>
#define MAXIMA_LONGITUD_CADENA 50
using namespace std;
int main() {
char cadena[50];
char nuevo_nombre[50];
char nombre[MAXIMA_LONGITUD_CADENA];
int cc;
//Abre el .txt que lleva el conteo de registros
ifstream conteo("conteo.txt");
//Guarda el valor de el .txt en la variable cadena
conteo.getline(cadena, 50);
//Convierte la variable cadena en entero, guardando sobre cc
cc = atoi(cadena);
// Mostrar en pantalla
cout<< "Ingresa los datos de el registro" <<endl;
// Crea un fichero de salida
ofstream fs("nombre.dat");
//Dar valor a los registros
fgets(nombre, MAXIMA_LONGITUD_CADENA, stdin);
// Remover salto de línea
if ((strlen(nombre) > 0) && (nombre[strlen(nombre) - 1] == '\n'))
{
nombre[strlen(nombre) - 1] = '\0';
}
// Enviamos la cadena al fichero de salida:
fs << nombre << endl;
// Cerrar el fichero, para luego poder abrirlo para lectura
fs.close();
//Agrega un nuevo registro a el conteo
cc = cc + 1 ;
//Actualiza el conteo y guarda en el conteo.txt para cerrarlo
sprintf(cadena, "%d", cc);
conteo<<cadena<<endl; //AQUI MARCA EL ERROR
conteo.close();
//Se le asigna un numero como nombre a el archivo de salida, para despues consultarlo
sprintf(nuevo_nombre, "%d", cc);
rename("nombre.dat", nuevo_nombre);
return 0;
}
El archivo donde llevo el conteo esta en la misma direccion que el programa, es un txt llamado conteo.txt y dentro tiene un 0 que seria el valor inicial.
Valora esta pregunta


0