elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Archivos usando fseek
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Archivos usando fseek  (Leído 2,091 veces)
nomsaro89

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Archivos usando fseek
« en: 24 Noviembre 2019, 18:52 pm »

Buenos dias
Estoy aprendido a programar archivos y me surgio un problema al intentar usar fseek.

Mi programa consiste en un menu unicamente de 2 opciones, la primera deberia de abrir el archivo en una linea en especifico (esto usando fseek) y la segunda opcion hace que termine el menu.
Mi problema es que al abrir mi archivo, este no se encuentra en la linea que deberia.
Si no que se ubica desde el inicio del archivo.
Ojala puedan ayudarme, se los agradeceria mucho.  :-*

CODIGO:

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>  //libreria para hacer uso de archivos
using namespace std;

int main ()
{
  int opcion=0;

                            do
                               { //Inicio do while


                                   cout<<"\t 1.- Abrir archivo" << '\n';
                                   cout<<"\t 2.- Finito." << '\n';


                                   cout<<'\n';
                                   cout<<"\t HOLA" << '\n';
                                   cout<<"\t Elige una opcion: ";
                                   cin>>opcion;
                                   cout<<'\n';

                               switch (opcion)
                               { //Inicio de switch case2

                                    case 1:
                                    FILE *archivo;

                                    archivo=fopen("C://Users//Usuario//Desktop//TODO.txt", "r" );

                                          // Si no podemos abrir el archivo, terminamos el programa.
                                          if(archivo == NULL)
                                             {
                                              cout<<"No se pudo abrir el archivo...";
                                              return (1);
                                             }

                                          // Ahora con fseek nos posicionamos donde querramos,
                                          // en este caso 50 bytes desde el inicio del archivo.
                                          fseek(archivo, 50, SEEK_SET);

                                        // Al final cerramos
                                        fclose(archivo);

                                        break;
                              }

} while ( opcion = 2 ); //Final de do while

  return 0;
}



En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Archivos usando fseek
« Respuesta #1 en: 24 Noviembre 2019, 19:25 pm »

Coloca el código entre etiquetas de Código GeSHi...

Por lo que veo, la función <fseek()> para poder recibir un valor de offset (segundo parámetro), el fichero debe estar abierto en formato binario.
Modifica la apertura del archivo por:
Código
  1. // ruta_archivo que siga siendo la ruta de tu archivo
  2. // r abre el archivo en modo lectura
  3. // b abre el archivo en modo binario
  4. archivo = fopen("ruta_archivo", "rb");

No sé si en C++ se podrá hacer de otra manera ya que parece que estás usando un método nativo de C.

PD: La condición del <while()> es una asignación, no una comparación, por lo que no te funcionará.
PD 2: Tienes un <switch()> con un único <case>... Para un único valor, acabas antes haciendo un condicional <if()>.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Transferencia de archivos, usando un servidor y cliente [C#]
.NET (C#, VB.NET, ASP)
SeniorX 2 16,688 Último mensaje 11 Junio 2006, 19:44 pm
por SeniorX
buscar registro con fseek
Programación C/C++
tumayy 4 7,193 Último mensaje 31 Octubre 2011, 14:43 pm
por do-while
Ayuda fseek ó ftell
Programación C/C++
estivinho 1 2,611 Último mensaje 25 Octubre 2012, 13:20 pm
por ecfisa
C++. Cargar una matriz de struct usando archivos de cabeceras
Programación C/C++
LeoXsiempre 2 3,324 Último mensaje 10 Abril 2015, 00:34 am
por LeoXsiempre
Cómo compartir archivos usando Hashtag
Noticias
wolfbcn 0 1,280 Último mensaje 12 Junio 2017, 15:20 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines