Ir para conteúdo

POWERED BY:

Arquivado

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

IvanR

[Resolvido] Ler toda a linha de um txt e guardar o resultado numa

Recommended Posts

Olá a todo, estou precisando de algo que leia a linha toda de um arquivo .txt e guarde em um char*, a leitura de dentro do arquivo ta pronta

 

int main (int argc, char *argv[]) {

  FILE * arqMips; //arquivo de entrada .txt
  int atomo; //variável utilizada para guardar o valor do atomo
  char* nomeArq; //nome do arquivo .txt

	if (argc > 1) { //entrada por arquivo .txt
		//concatena a extensão .txt
		if(strlen(argv[1]) <= 4 || strcmp(argv[1] + strlen(argv[1]) - 4, ".txt")) {
			nomeArq =argv[1];
			strcat(nomeArq, ".txt");
		}
		else
			nomeArq = argv[1];

		if(!(arqMips = fopen(nomeArq, "r"))) { //tenta abrir o arquivo .txt, se não conseguir retorna a mensagem de erro
			fputs("Erro ao abrir o arquivo...\n", stderr);
			system("pause");
			return 1;
		}
	}
	else //entrada padrão stdin (via console)
		arqMips = stdin;

Oq posso fazer pra ler agora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisei sobre esse fgets e bolei algo como isso:

 

char* str;

fgets(str, strlen(str)+1, arqMips);

Assim funcionaria? Ou como não tenho o tamanho do str pode dar pau?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vai dar pau.

 

Tem que usar um valor genérico que supere o tamanho máximo de uma linha do arquivo. Ex:

 

char str[255];

fgets(str, 255, arqMips);

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.