Logo Hardware.com.br
Boutrik
Boutrik Membro Junior Registrado
72 Mensagens 26 Curtidas

[Resolvido] Problema no script ( Linguagem C )

#1 Por Boutrik 28/10/2015 - 13:27
Olá.
Primeiramente, eu estava escrevendo um código em C e parei de escrever para testar se realmente estava funcionando e o compilador não mostrou nenhum erro.
Porém, quando eu executo ele, meus comandos "fopen, fclose, fprintf e fscanf" não estão querendo funcionar.
Na logica, meu código criaria um arquivo texto.txt se ele não existisse.
Code : [code=C]
//------------------------------------
FILE *arq = fopen ("texto.txt", "r");
if (!arq) {
fclose (arq);
arq = fopen ("texto.txt", "w");
printf ("\n\tString to save in file : "); scanf ("%s", text_file);
fprintf (arq, "%s", text_file);
fclose (arq);
} else {
fscanf (arq, "%s", &text_file);
fclose (arq);
}
//-------------------------------------
[/code]
Se o arquivo existisse, ele simplesmente leria o arquivo e o texto que estivesse no mesmo seria salvo em uma variável char text_file.
Há algum erro por parte minha no programa ? Como eu arrumaria isso ? Se possível uma explicação do porque isso ocorreu.
Obrigado pela atenção =).
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
28/10/2015 - 14:12
Dentro do if não faz sentido existir o primeiro fclose(). Como vc tenta fechar algo q não conseguiu abrir? Esse é o problema q está dando erro de segmentação, tire essa linha.
E em fscanf (arq, "%s", &text_file); tire o '&'
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Boutrik
Boutrik Membro Junior Registrado
72 Mensagens 26 Curtidas
#3 Por Boutrik
28/10/2015 - 14:27
Olá Tpcvasco. Obrigado pelos conselhos, arrumei o código aqui. Porém o problema continua.
Quando eu o executo, aparece "O arquivo parou de funcionar..." e aquela barra irritante.
Para mais detalhes do meu código : ( faço uso do Code.:Blocks )
[code=C]
#include
#include
#include
#include
#include
#include
int main (void) {
char cmd[500];
int verify = 0;
char prompt[500];
char text_file;

struct you {
char name[500];
};
struct you user;
FILE *arq = fopen ("login.txt", "r");
if (!arq) {
arq = fopen ("login.txt", "w");
printf ("\n\tWrite you user name of computer : "); scanf ("%s", user.name);
fprintf (arq, "%s", user.name);
fclose (arq);
} else {
fscanf (arq, "%s", text_file);
strcpy (user.name, text_file);
fclose (arq);
}
system ("cls || clear screen");
do {
verify = 0;
printf ("\n\nWelcome %s", user.name);
printf ("\n\tSet cmd = "); scanf ("%s", &cmd);
if (strcmp(cmd, "testSQL")==0) {
// Comandos
verify = 1;
}
if (strcmp(cmd, "OpenPrompt")==0) {
// Comandos
verify = 1;
}
if (strcmp(cmd, "EditBatchFile")==0) {
// Comandos
verify = 1;
}
if (strcmp(cmd, "ConnectSocket")==0) {
// Comandos
verify = 1;
}
//entre outros IF
if (verify == 0) {
sprintf (prompt, "%s", cmd);
system (prompt);
}
} while (1);

return (0);
}
[/code]
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal