c/c++ bug

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

c/c++ bug

Mensagempor Ciber_Skull » Domingo Fev 27, 2005 1:45

Boas, eu sou um novato em C mas estou a gostar do que aprendo :D, portanto resolvi fazer um programa só que não está a funcionar devidamente, este prog consiste em ser utilizado numa linha de comandos ( [prog] [atrib1] ... [atribN] )
Código: Seleccionar todos
#include <stdio.h>
#include <string.h>

main(int x, char*s[])
{
   char str[80];
   int i;
   FILE *F;
   F=fopen("ola.txt","wt");
   for (i=1;i<=x;i++)
   {
       strcpy(str,s[i]);
       puts(str);
       fputs(str,F);
   }
   fclose(F);

}

Eu uso compilador Dev-Cpp 5.0 beta.
Agradeço desde já a vossa ajuda.
Everyone believes in god but I believe in you!
Ciber_Skull
Novato
Novato
 
Mensagens: 19
Registado: Domingo Fev 27, 2005 1:31
Localização: Porto

Re: c/c++ bug

Mensagempor Taxus » Domingo Fev 27, 2005 17:33

Código: Seleccionar todos
#include <stdio.h>
#include <string.h>

main(int x, char*s[])
{
   char str[80];
   int i;
   FILE *F;
   F=fopen("ola.txt","wt");
   for (i=1;i<=x;i++)
   {
       strcpy(str,s[i]);
       puts(str);
       fputs(str,F);
   }
   fclose(F);

}


Compilei e realmente dá um erro meio estranho.
O código tem algumas coisas um pouco estranhas.
O "x" e o "s" têm que ser inseridos na linha de comandos, porquê? Torna as coisas mais complicadas. E como é que tu sabes o valor do x?
Uma sugestão, tira os parâmetros de entrada da func main. E insere uma coisa bonitinha do tipo "printf("\nInsira uma frase"); e depois lê essa frase para a string "s". depois fazes "strlen(s)" (não sei se é esta a sintaxe) para obter o tamanho da frase inserida e depois escreves para o ficheiro.
Quanto aos comandos de abertura, escrita e fecho do ficheiro.. n faço ideia se estão bem, já nao uso isso ha anos.
KaoS Contingency UT2k4 clan
http://www.kaos-eu.com/
Msn Taxus@netvisao.pt
Taxus
Membro de Ouro
Membro de Ouro
 
Mensagens: 946
Registado: Quarta Set 11, 2002 3:33

Mensagempor Taxus » Domingo Fev 27, 2005 17:45

Código: Seleccionar todos
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char s[80], str;
int i,x;
FILE *f;
   
int main(void)
{
   printf("\nInsira a frase\n");
   scanf("%s",&s);
   x=strlen(s);
    f=fopen("ola.txt","wt");
   for (i=1;i<=x;i++)
   {
  //   puts(s);
     fputs(s,f);
   }
   fclose(f);
   getchar();
}


Muito simplificado e só funciona para uma palavra (nunca gostei muito de manipular strings)
O ciclo for não está aqui a fazer nada )limita-se a escrever a palavra tantas vezes como o num de letras)

No teu código suponho que queiras fazer isso caracter a caracter... daí o for
KaoS Contingency UT2k4 clan
http://www.kaos-eu.com/
Msn Taxus@netvisao.pt
Taxus
Membro de Ouro
Membro de Ouro
 
Mensagens: 946
Registado: Quarta Set 11, 2002 3:33

Mensagempor Taxus » Domingo Fev 27, 2005 17:52

KaoS Contingency UT2k4 clan
http://www.kaos-eu.com/
Msn Taxus@netvisao.pt
Taxus
Membro de Ouro
Membro de Ouro
 
Mensagens: 946
Registado: Quarta Set 11, 2002 3:33

Mensagempor Ciber_Skull » Domingo Fev 27, 2005 19:17

Boas, Taxus agradeço a tua ajuda e pelo link.
De facto assim já funciona, eu também já tinha experimentado algo do genero, para ver qual era o erro mas este já n aparecia. o objectivo era mesmo pa usar na linha de comandos. Como já percebeste o "x" e o "s" são para ser usados na linha de comandos, o "x" nao é directa mente escrito por nós, serve para para saber quantos argumentos foram escritos, repara que eu não escrevo assim: [prog] [numarg] [arg1] [argn]
eu escrevo assim: [prog] [arg1] [argn]
admito que pode ser um pouco confuso mas não te consigo explicar melhor lamento :oops:
de qualquer forma agradeço a tua disponibilidade para responderes. :D
Everyone believes in god but I believe in you!
Ciber_Skull
Novato
Novato
 
Mensagens: 19
Registado: Domingo Fev 27, 2005 1:31
Localização: Porto


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron