[Ayuda]Informaticos y sabios de lenguaje c++/c, os invoco!

He puesto este hilo aqui porque no sabia exactamente donde ponerlo. Si esta mal colocado reubicarlo.
Vamos a ver, el caso es que estoy dando en la uni el tema de ficheros y me ponen un ejercicio que no se implementarlo del todo.
El ejercicio pide al usuario el nombre de un fichero el cual existe en el directorio y tiene un numero de palabras y una palabra. El programa se encarga de buscar los resultados de la palabra en el fichero y muestra por pantalla el numero de coincidencias.
El problema viene que no se como ponerlo para que lo habra, ya que al hacerlo asi "<Nombredelfichero>.open("Nombredelarchivo.txt") lo que esta entre parentesis pide un nombre y no una variable que es lo que se introduce.
No se podria poner asi:
<Nombredelfichero>.open(cin>>palabra)

Ayuda!! :)
fopen

Esto en un googleo lo habrías sacado supongo xD
En c lo hago así
Primero declaras una variable
FILE *fichero;
y luego lo abres
fichero=fopen("archivo.txt","modo");
en el archivo tienes que poner la direccion completa, a menos que este en la carpeta principal del proyecto
el modo es lectura escritura.....
wakka escribió:He puesto este hilo aqui porque no sabia exactamente donde ponerlo. Si esta mal colocado reubicarlo.
Vamos a ver, el caso es que estoy dando en la uni el tema de ficheros y me ponen un ejercicio que no se implementarlo del todo.
El ejercicio pide al usuario el nombre de un fichero el cual existe en el directorio y tiene un numero de palabras y una palabra. El programa se encarga de buscar los resultados de la palabra en el fichero y muestra por pantalla el numero de coincidencias.
El problema viene que no se como ponerlo para que lo habra, ya que al hacerlo asi "<Nombredelfichero>.open("Nombredelarchivo.txt") lo que esta entre parentesis pide un nombre y no una variable que es lo que se introduce.
No se podria poner asi:
<Nombredelfichero>.open(cin>>palabra)

Ayuda!! :)


No tengo ni idea de donde sacas esta sintaxis, pero en principio debería ser algo así :

FILE* fichero = fopen("Nombredelfichero.txt","r+");

O así :

std::ifstream fichero("Nombredelfichero.txt");
Ya he conseguido hacer el ejercicio:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main()
{
ifstream f;
string nombre;
string palabra;
string dato;
int x;
int contador=0;

cout<<"Introduce el nombre del fichero: "<<endl;
cin>>nombre;
f.open(nombre.c_str());
cout<<"Introduce la palabra a buscar: "<<endl;
cin>>palabra;
cout<<"//////////////////////////////////"<<endl;

if (!f)
cout<< "ERROR!"<<endl<<"No se puede abrir el fichero"<<endl;
else
{
while (f>>dato)
{
if (dato==palabra)
contador = contador + 1 ;
}

cout<<"La palabra se repite "<<contador<<" veces."<<endl;
}

f.close();
system ("pause");
return 0;
}
4 respuestas