Jump to content

Utilizador dá o caminho e nome do ficheiro


FMC
Go to solution Solved by HappyHippyHippo,

Recommended Posts

Olá malta estou aqui a fazer um mini projecto de c++, onde estou a criar um bloco de notas, e mais tarde vou usar para programar(ideia maluca mas pronto), e queria que o utilizador no inicio coloca-se no inicio o caminho e o nome do ficheiro exemplo : /home/fmc/ficheiro.txt

Como faço?E ste código está a criar um ficheiro como default, e não inserido pelo utilizador!

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


bool e_letra(char a) //confirma se é letra
{
bool saida;
if ((a>='a' &&  a<='z') || (a>='A' &&  a<='Z') ) //Se for alguma letra
 saida=true;
else
   saida=false;
return saida;
}
bool e_numero(char a) //confirma se é numero
{
bool saida;
if (a>='1' && a<='9') //se for algum  numero
	saida=true;
else
	saida=false;
return saida;
}
bool e_espaco(char a)
{
bool saida;
 if (a == ' ' || a=='\t' || a== '\r' || a == '\n') //se for algum tipo de espaço
	 saida=true;
 else
	 saida=false;
 return saida;
}

void texto(){
//variáveis
char entrada;
unsigned numero_letras=0,numero_numeros=0,numero_outros=0,numero_espacos;


ofstream esc;
esc.open("saida.txt");
//Texto inicial
cout << "Escreve, para parar *"
	 << endl;
do{
	entrada = (char) cin.get(); //Para recolher espaços
	esc << entrada;
	if (e_letra(entrada)) //Se for letra, adiciona uma na variavel letra
	   numero_letras++;
	else
		if (e_numero(entrada)) //Se não for letra e se for numero adc uma a variavel num
			numero_numeros++;
	else
			if (e_espaco(entrada))
				numero_espacos++;
		else						//Se não for nenhuma das anteriores é caracter especial
			numero_outros++;

}
while(entrada!='*'); // repetir até chegar o caracter *
esc.close();

cout << "Saiu porcausa que escrever o caracter '*', e esse foi ignorado" << endl; //Mensagem de aviso

cout << numero_letras << " letra" << (numero_letras!=1 ? "s":"")
	 << endl;
cout << numero_numeros << " numero" << (numero_numeros!=1 ? "s":"")
	 << endl;
cout << numero_espacos << " espaço" << (numero_espacos!=1 ? "s":"")
	 << endl;
cout << numero_outros << " outro" << (numero_outros!=1 ? "s":"") << " caracter" << (numero_outros!=1 ? "es":"")
	 << endl;
}
int main()
{
 texto();
 return 0;
}

"The greatest mistake you can make in this life is to be continually fearing you will make one."

Elbert Hubbard -

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.