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
por Ciber_Skull » Domingo Fev 27, 2005 1:45
Boas, eu sou um novato em C mas estou a gostar do que aprendo

, 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

-
- Mensagens: 19
- Registado: Domingo Fev 27, 2005 1:31
- Localização: Porto
por 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.
-
Taxus
- Membro de Ouro

-
- Mensagens: 946
- Registado: Quarta Set 11, 2002 3:33
-
por 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
-
Taxus
- Membro de Ouro

-
- Mensagens: 946
- Registado: Quarta Set 11, 2002 3:33
-
por Taxus » Domingo Fev 27, 2005 17:52
-
Taxus
- Membro de Ouro

-
- Mensagens: 946
- Registado: Quarta Set 11, 2002 3:33
-
por 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
de qualquer forma agradeço a tua disponibilidade para responderes.

Everyone believes in god but I believe in you!
-
Ciber_Skull
- 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