aninha1988 Postado Setembro 25, 2008 Denunciar Share Postado Setembro 25, 2008 :unsure: quando digito o seguinte codigo em c... #include <stdio.h> #include <string.h> #include <errno.h> #include <conio.h> #define MAXV 20 #define MAXM 10001 int main(){ char*linha; int a; int v[MAXV]; int i; int b;int nc; FILE*arquivo; b=0;arquivo=fopen("entrada.txt", "r"); fscanf(arquivo, "%d", &a); if((a<1)||(a>MAXM)){ printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n"); printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n"); ferror(arquivo); } linha=(char*)malloc(100); fgets(linha, 100, arquivo); nc=strlen(linha); if(nc<1){ printf("\nErro: não existe string no arquivo!!!\n\n"); ferror(arquivo); } for(i=0; i<MAXV; i++){ fscanf(arquivo, "%d", v); b=b+1; } printf("%d\n", a); printf("%d\n", v[0]); printf("%s\n",linha); getch(); } O Devc++ executa e compila...porem o meu programa só esta imprimindo a leitura da primeira linha do arquivo...no caso... o a... o compilador apresenta dois erros....e mesmo assim forma o arquivo executavel... Permission denied ld returned 1 exit status alguém sabe o que são esses erros e auql o problema com o meu codigo??????? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Setembro 25, 2008 Denunciar Share Postado Setembro 25, 2008 :unsure: quando digito o seguinte codigo em c... #include <stdio.h> #include <string.h> #include <errno.h> #include <conio.h> #define MAXV 20 #define MAXM 10001 int main(){ char*linha; int a; int v[MAXV]; int i; int b;int nc; FILE*arquivo; b=0;arquivo=fopen("entrada.txt", "r"); fscanf(arquivo, "%d", &a); if((a<1)||(a>MAXM)){ printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n"); printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n"); ferror(arquivo); } linha=(char*)malloc(100); fgets(linha, 100, arquivo); nc=strlen(linha); if(nc<1){ printf("\nErro: não existe string no arquivo!!!\n\n"); ferror(arquivo); } for(i=0; i<MAXV; i++){ fscanf(arquivo, "%d", v); b=b+1; } printf("%d\n", a); printf("%d\n", v[0]); printf("%s\n",linha); getch(); } O Devc++ executa e compila...porem o meu programa só esta imprimindo a leitura da primeira linha do arquivo...no caso... o a... o compilador apresenta dois erros....e mesmo assim forma o arquivo executavel... Permission denied ld returned 1 exit status alguém sabe o que são esses erros e auql o problema com o meu codigo???????o primeiroo erro eu posso ajudar o segundo eu num sei so esta lendo uma linha porque o vetor esta fora do whilefor(i=0; i<MAXV; i++){ fscanf(arquivo, "%d", v); b=b+1; } // while esta termiando aqui ou seja so imprime o vetor na posição 0printf("%d\n", a); printf("%d\n", v[0]); // ovalor da posição 0 printf("%s\n",linha); getch(); } para arrumar esse problema coloca a chave depois ficando assim for(i=0; i<MAXV; i++){ fscanf(arquivo, "%d", v); b=b+1; printf("%d\n", a); printf("%d\n", v[0]); printf("%s\n",linha); } getch(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Setembro 25, 2008 Denunciar Share Postado Setembro 25, 2008 E TROCA V[0] POR v, esquece deste detalhe Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aninha1988 Postado Setembro 25, 2008 Autor Denunciar Share Postado Setembro 25, 2008 eu arrumei o lance do indice e do looping...e o codigo tah assim#include <stdio.h>#include <string.h>#include <conio.h>#define MAXV 20#define MAXM 10001int main(){ char linha[100];; int a; int v[MAXV]; int i; int b; int nc; FILE*arquivo; b=0; arquivo=fopen("entrada.txt", "r"); fscanf(arquivo, "%d", &a); if((a<1)||(a>MAXM)){ printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n"); printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n"); exit(1); } fgets(linha, 100, arquivo); nc=strlen(linha); if(nc<1){ printf("\nErro: não há string no arquivo!!!\n\n"); exit(1); } for(i=0; i<MAXV; i++){ fscanf(arquivo, "%d", &(v)); b=b+1; printf("%d\n", v); } printf("%d\n", a); printf("%s\n",linha); getch();} só que ainda tem algum erro....o meu arquivo de entrada tem as seguintes linhas...3ATATGCGA 3 6 4 8 3 4 era pra imprimir...3364834ATATGCGAe tah imprimindo...33998056não consigo entender porque???? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tuga Postado Setembro 25, 2008 Denunciar Share Postado Setembro 25, 2008 oi Anabem eu axo que é mais ou menos isto#include <stdio.h> #include <string.h> #include <conio.h> #define MAXV 20 #define MAXM 10001 int main(){ char linha[100];; int a,t=0; char v[MAXV]; char car[MAXV]; int i,ch; int b; int nc; char bo; FILE*arquivo; b=0; arquivo=fopen("entrada.txt", "r"); fscanf(arquivo, " %d", &a); if((a<1)||(a>MAXM)){ printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n"); printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n"); getchar();getchar(); exit(1); } /*fgets(linha, 100, arquivo); nc=strlen(linha); if(nc<1){ printf("\nErro: não há string no arquivo!!!\n\n"); getchar();getchar(); exit(1); }*/ printf(" %d\n", a); getchar(); for(i=0; i<MAXV; i++){ while(fscanf(arquivo, " %c", &ch) != EOF){ printf(" %c\n", ch); } printf("\n não há mais caracteres no arquivo!!!\n\n"); getchar();exit(1); } }Agora só falta a comparação com os caracteres, eo seja, se for caracter não imprime e mete num vector, senão imprime....Nota só no fim imprimes o vector de caracteres.Bem agora axo que tá facil mas deixo pa vocêCumprimentos de Portugal Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 aninha1988 Postado Setembro 26, 2008 Autor Denunciar Share Postado Setembro 26, 2008 oi Anabem eu axo que é mais ou menos isto#include <stdio.h> #include <string.h> #include <conio.h> #define MAXV 20 #define MAXM 10001 int main(){ char linha[100];; int a,t=0; char v[MAXV]; char car[MAXV]; int i,ch; int b; int nc; char bo; FILE*arquivo; b=0; arquivo=fopen("entrada.txt", "r"); fscanf(arquivo, " %d", &a); if((a<1)||(a>MAXM)){ printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n"); printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n"); getchar();getchar(); exit(1); } /*fgets(linha, 100, arquivo); nc=strlen(linha); if(nc<1){ printf("\nErro: não há string no arquivo!!!\n\n"); getchar();getchar(); exit(1); }*/ printf(" %d\n", a); getchar(); for(i=0; i<MAXV; i++){ while(fscanf(arquivo, " %c", &ch) != EOF){ printf(" %c\n", ch); } printf("\n não há mais caracteres no arquivo!!!\n\n"); getchar();exit(1); } }Agora só falta a comparação com os caracteres, eo seja, se for caracter não imprime e mete num vector, senão imprime....Nota só no fim imprimes o vector de caracteres.Bem agora axo que tá facil mas deixo pa vocêCumprimentos de PortugalObrigada...vou tentar implementar o codigo com a mudança que você sugeriu... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
aninha1988
:unsure:
quando digito o seguinte codigo em c...
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <conio.h>
#define MAXV 20
#define MAXM 10001
int main(){
char*linha;
int a;
int v[MAXV];
int i;
int b;
int nc;
FILE*arquivo;
b=0;
arquivo=fopen("entrada.txt", "r");
fscanf(arquivo, "%d", &a);
if((a<1)||(a>MAXM)){
printf("\nErro: O numero lido excede o numero maximo de operacoes aceito pelo programa!!!\n\n");
printf("\nO programa aceita no maximo 10000 operacoes de troca!!!\n\n");
ferror(arquivo);
}
linha=(char*)malloc(100);
fgets(linha, 100, arquivo);
nc=strlen(linha);
if(nc<1){
printf("\nErro: não existe string no arquivo!!!\n\n");
ferror(arquivo);
}
for(i=0; i<MAXV; i++){
fscanf(arquivo, "%d", v);
b=b+1;
}
printf("%d\n", a);
printf("%d\n", v[0]);
printf("%s\n",linha);
getch();
}
O Devc++ executa e compila...porem o meu programa só esta imprimindo a leitura da primeira linha do arquivo...no caso... o a...
o compilador apresenta dois erros....e mesmo assim forma o arquivo executavel...
Permission denied
ld returned 1 exit status
alguém sabe o que são esses erros e auql o problema com o meu codigo???????
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.