Este es el enunciado:
Realizar un programa que lea c:\texto.txt y proporcione las siguientes estadísticas: nº total de caracteres, nº de mayúsculas, nº de consonantes, nº de vocales y las cinco letras mas usadas
Y este es mi code:
Código
#include <iostream> //entrada y salida por consola #include <fstream> //entrada y salida por ficheros #include <string> //para String #include <stdlib.h> //para System #include <stdio.h> //para Remove using namespace std; // Realizar un programa que lea c:\texto.txt y proporcione las siguientes estadísticas: nº total de caracteres, // nº de mayúsculas, nº de consonantes, nº de vocales y las cinco letras mas usadas int main() { // Ruta del archivo string nombreArchivo = "c:\texto.txt"; //La paso a const char* para que no se queje el compilador al abrir los ficheros const char* nombre = nombreArchivo.c_str(); ifstream File1(nombre, ios::in); //Abrimos el fichero en modo de lectura // Si hay error al abrir el archivo volvemos al principio if (File1.fail()) { cout << "Ha habido un error debido a que no se puede abrir el archivo. Por favor intentelo de nuevo."; cout << "Pulse intro para reiniciar"; cin.get(); // NO SE PONE () TRAS EL GET???? system("cls"); main(); } else { // Creamos un fichero nuevo donde guardar las estadísticas ofstream estadisticas("Estadistica.txt", ios::out); int caracteresTotales = 0, numMayusc = 0, numConsonantes, numVocales; int letras[27]; //Array donde guardaremos las ocurrencias de cada letra for (int i = 0; i < 27; i++) { letras[i] = 0; } cout << letras[3]; system("pause > nul"); } }
Estoy en Windows 7, usando una cuenta limitada (por tanto para meter el archivo en c:\ me ha pedido la pass de administrador y por eso creo que puede ser el que no consiga abrirme el archivo.
No me da error sino que me salta directo a que no lo consigue abrir (cuando resulta que el archivo está ahí)
Saludos
EDITO: Ahora viendo el código GeSHi me he dado cuenta de que resalta el \t... Puede ser que lo tome como un 'comando de String' como lo es \n para salto de línea y por eso no lo encuentre?