Ir ao conteúdo

Posts recomendados

Postado

O programa pede que seja contado o número de caracteres do arquivo texto e que imprima essa contagem na tela. Fiz o programa mas ele está dando erro na linha "Arquivo * ptr;".

#include <stdio.h>
#include <stdlib.h>

int main () {
	Arquivo * ptr;
	char nomeArquivo [20];
	total int = 0;
	scanf ("% s", nomeArquivo);
	ptr = fopen (nomeArquivo, "rt");
	if (ptr == NULL) {
		printf ("Arquivo não existe.");
		saída (1);
	}
	while (getc (ptr)! = EOF) {
		total ++;
	}
	printf ("% d", total);
	return 0;
}

 

Postado

Já ouvi falar Serie de Livros Dummies, sua metodologia é focada no ensino e autoaprendizagem. Curiosamente, esse código lembra alguns exercícios deles. Sei disso porque uso na minha pática.

 

 Identifique os erros e corrija eles -- Arquivo é tradução da palavra FILE, um tipo composto de dados. Ao trabalhar com arquivos, você declara um ponteiro de FILE. Ele é necessário para comunicação entre o arquivo e o programa.

 

Postado

@paulo luz magalhaes Tem vários problemas no seu código,

 

1 hora atrás, paulo luz magalhaes disse:

Arquivo * ptr;

Arquivo é uma estrutura? Tentou traduzir FILE? Por que declarou assim?

  

1 hora atrás, paulo luz magalhaes disse:

total int = 0;

Essa parte está errada, o correto é: int total = 0;

 

1 hora atrás, paulo luz magalhaes disse:

saída (1);

Não use acentuação, saída é uma função do seu programa? Não existe isso em C, o correto não seria exit(1)?

 

Remova os espaços onde não é necessário, esse é o warning na linha do primeiro scanf por causa do espaço em "% s",

 

main.c:8:11: warning: unknown conversion type character 0x20 in format [-Wformat=]

 

 

  • Obrigado 1
Postado

Tentei fazer as alterações mas ainda persiste o erro. Realmente estou queimando fosfato aqui mas não consigo.☹️

#include <stdio.h>
#include <stdlib.h>

int main () {
	file * ptr;
	char namefile [20];
	int total = 0
	scanf("%s", namefile);
	ptr = fopen (namefile, "rt");
	if (ptr == NULL) {
		printf("Arquivo não existe");
		saída (0);
	}
	while(getc (ptr)! = EOF) {
		total ++;
	}
	printf("%d", total);
	return 0;
}

 

retificando o código.

#include <stdio.h>
#include <stdlib.h>

int main () {
	FILE * ptr;
	char namefile [20];
	int total = 0
	scanf("%s", namefile);
	ptr = fopen (namefile, "rt");
	if (ptr == NULL) {
		printf("Arquivo não existe");
		saída (0);
	}
	while(getc (ptr)! = EOF) {
		total ++;
	}
	printf("%d", total);
	return 0;
}

 

Postado

Seu código continua com problemas que já apontei.

 

Veja as mensagens do compilador, isso é bem útil,

 

main.c:8:2: error: expected ‘,’ or ‘;’ before ‘scanf

main.c:12:5: error: stray ‘\303’ in program

saída (0);

main.c:12:11: error: expected declaration specifiers or ‘...’ before numeric constant

saída (0);

main.c:14:18: error: expected ‘)’ before ‘!’ token

 

Postado

Olá!

 

Se você acha que uma linguagem de programação é assim cheia de detalhes e frescuras tem razão. É sim.

 

Se você não acha deve mudar de ideia com o tempo.  Em especial com o tempo perdido.

 

int main () {
	FILE * ptr;
	char namefile [20];
	int total = 0
	scanf("%s", namefile);
	ptr = fopen (namefile, "rt");
	if (ptr == NULL) {
		printf("Arquivo não existe");
		saída (0);
	}
	while(getc (ptr)! = EOF) {
		total ++;
	}
	printf("%d", total);
	return 0;
}

 

Só uma linha cima não tem um ';' ao final. Acha que está certo? Não está. Acha que faz diferença? Sim. Faz.

 

Que pretende com a singela linha
 

    saída(0);

 

com acento e tudo?

 

O operador 'nao igual' em C é "!=". Escreva assim.

 

scanf() retorna um int. TESTE. É ingênuo tentar ler um arquivo cujo nome você não conseguiu ler.... Acha que vai dar certo? Não vai.

 

Tem um livro? Uma apostila? Um site em que confie? Algum amigo que programe? 

 

Onde arrumou esse modo "rt" para o open?

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...