Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manvix

programa em C de ficheiro e lista

Recommended Posts

oi pessoal estou com um problema e nao consigo sair daki. tenho um trabalho em C ke e pra ler um ficheiro mostrar o numero de linhas ,o numero de palavras, kuantas vezes ela repete e escrever numa lista.

O meu codigo esta assim:

 

 

// Novo projecto.cpp : Defines the entry point for the console application.

//

 

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


 typedef struct estrutura {   // estrutura q vai guarda todas as palavras do texto
 
	 char atual[20];  // vai receber a palavra atual
	 int num; // posicao da palavra atual	 
} estrutura;

char nome[1];
int ficheiro;
estrutura palavra[500];  
// vai guardar todas as palavras do testo, supondo q sao 500

int posicao = 0; // posicao no vetor

FILE *leitura;  // ponteiro para arquivo

void lerArquivo (void) {   // funcao q vai abrir o arquivo
	 	printf ("\n\n Por favor introduza o nome do ficheiro com sua extensao \n\n");
		scanf("%c",nome);
		leitura = fopen(nome,"r");
			if ((leitura) == NULL)
			   {
				printf ("\n\n Impossivel abrir o ficheiro \n\n");
			   
		  exit(0);	   
	 }
	 
}

void buscarPalavra(void) {
  
	char ch = ' ';  // inicializa ch com caractere invalido
	   int pos = 0;

	  while ((ch = fgetc(leitura)) != EOF) {			   
			   if (ch == '\0') {												  
				  palavra[posicao].atual[pos] = '\0';   // termina a string				   
				  posicao++;  // proxima palavra
				  pos = 0; 
			   }
			   else {
					   // ler caractere do arquivo e concatena em atual  
					   palavra[posicao].atual[pos] = ch;																	
					   pos++; 
			   }
				
	  }
}
void main(void) {
	   lerArquivo();
	   buscarPalavra();
		
	   
}

sera ke alguem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha uma coisa q naum entendi foi isso:

printf ("\n\n Por favor introduza o nome do ficheiro com sua extensao \n\n");
		scanf("%c",nome);
ai num vai caber um nome com extensao neh xD!

e + uma coisa:

fazer isso 'e feio cai o dedo:

char nome[1];
faca simplesmente isso:

char nome; //c bem q tem q ser uma string pois vai armazenar uma palavra!
ow:
char nome[2];
.
.
nome[0] = 'a';
nome[1] = '\0'

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha uma coisa q naum entendi foi isso:

printf ("\n\n Por favor introduza o nome do ficheiro com sua extensao \n\n");
		scanf("%c",nome);
ai num vai caber um nome com extensao neh xD!

e + uma coisa:

fazer isso 'e feio cai o dedo:

char nome[1];
faca simplesmente isso:

char nome; //c bem q tem q ser uma string pois vai armazenar uma palavra!
ow:
char nome[2];
.
.
nome[0] = 'a';
nome[1] = '/0'

[]'s

 

oi eu percebi a parte do scanf("%c",nome) ke passa para scanf("%s",nome)

na parte do char era para o programa identificar o nome como uma string nao como um caractere pk ele esta a dar erro se ficar so char nome;. E o ke mais eu posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom c você qr q seja uma string tem q definir um tamanho para ela!

tipo:

char nome[25];

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.