Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

IvanR

Criação de arquivo e teste sobre o mesmo

Recommended Posts

Olá a todos, preciso criar um arquivo que se o usuário apertar enter, o arquivo é criado com um nome default.txt, oq eu fiz até agora foi:

 

#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <cstdio.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
	printf("Nome do Arquivo\n");
	char* nomeArquivo;

	scanf("%s",nomeArquivo);

	if(*nomeArquivo == '13'){
	  nomeArquivo = "default.txt";
	}else{
	   strcat(nomeArquivo,".txt");
	 }

	  //Abre o arquivo fonte
	 if(!fopen(nomeArquivo,"r"))

	 {
		 printf("O arquivo nao pode ser aberto.\n");
		 system("PAUSE");

		 exit(0);
	 }

	 system("pause");

  return 0;
}

Meus problemas são:

 

a função scanf não detecta o enter, ou seja, se o usuario aperta o enter ela não grava simplesmente o código ascii '13' nele, espera sempre alguma letra e parece que não esta conseguindo tb criar o arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha faça algo assim:

int op;
op = getch();
if (op == 13) ...

tenta ae e fala e me de um retorno ;D

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, td bom?

 

Com isso eu trato um problema mas fico com outro, pq de fato ele vai entrar no if e definir o nome do arquivo como default.txt, mas o problema é quando eu quiser escrever o nome desse arquivo, pq quando eu digitar uma tecla ele não contará esta tecla:

 

#include <stdio.h>
#include <cstdio.h>
#include <conio.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
	printf("Nome do Arquivo\n");
	char* nomeArquivo;

	int op;
	op = getch();

	if(op == 13){
	  nomeArquivo = "default.txt";
	}else{
	   strcat(nomeArquivo,".txt");
	 }

	  //Abre o arquivo fonte
	 if(!fopen(nomeArquivo,"w+"))

	 {
		 printf("O arquivo nao pode ser aberto.\n");
		 system("PAUSE");

		 exit(0);
	 }

	 system("pause");

  return 0;
}

Se o usuário quiser que o nome do arquivo seja teste, por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ixi é verdade, tente usar o getchar(); no lugar do getch(); entaum e me diga c melhora !

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

com o getchar ele não consegue nem entrar no if:

 

//---------------------------------------------------------------------------

#pragma argsused
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <cstdio.h>
#include <conio.h>

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
	FILE* arqPortugol;

	printf("Nome do Arquivo\n");

	char* nomeArquivo;

	int op;
	op = getch();

	if(op == 13){
	  arqPortugol = fopen("default.txt","w");
	}else{
	   scanf("%s",&nomeArquivo);
	   strcat(nomeArquivo,".txt");
	   arqPortugol = fopen(nomeArquivo,"w");
	 }

	 system("pause");

  return 0;
}

Sem contar que meu strcat tb ta dando problema, tirei a parte do código que não interessa na dúvida e mudei-o um pouco

 

EDIT: Até onde eu cheguei com o código

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.