IvanR 0 Denunciar post Postado Agosto 29, 2008 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
quitZAUMMM 18 Denunciar post Postado Agosto 29, 2008 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
IvanR 0 Denunciar post Postado Agosto 29, 2008 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
quitZAUMMM 18 Denunciar post Postado Agosto 29, 2008 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
IvanR 0 Denunciar post Postado Agosto 29, 2008 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
IvanR 0 Denunciar post Postado Agosto 29, 2008 Não sei se é o fórum ou a conexão aki da empresa, mas anda saindo muito post duplicado Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 29, 2008 é cara desculpe naum responder + é q ta corrido aki!! + a gente vai achar uma solução sim http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 29, 2008 Usa fgets. Compartilhar este post Link para o post Compartilhar em outros sites