#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "forca.h"
char palavrasecreta[20]; char chutes[26]; int chutesdados = 0;
int enforcou() {
int erros = 0;
for (int i = 0; i < chutesdados; i++) {
int existe = 0;
for (int j = 0; j < strlen(palavrasecreta); j++) {
if (chutes[i] == palavrasecreta[j]) {
existe = 1;
break;
}
}
if (!existe) erros++;
}
return erros >= 5;
}
int ganhou() { for (int i = 0; i < strlen(palavrasecreta); i++) { if (!jachutou(palavrasecreta[i])) { return 0; } }
return 1;
}
void abertura() { printf("/****/\n"); printf("/ Jogo de Forca /\n"); printf("/***/\n\n"); }
void chuta() { char chute; printf("Qual letra? "); scanf_s(" %c", &chute);
chutes[chutesdados] = chute;
chutesdados++;
}
int jachutou(char letra) { int achou = 0; for (int j = 0; j < chutesdados; j++) { if (chutes[j] == letra) { achou = 1; break; } }
return achou;
}
void desenhaforca() {
printf("Você já deu %d chutes\n", chutesdados);
for (int i = 0; i < strlen(palavrasecreta); i++) {
if (jachutou(palavrasecreta[i])) {
printf("%c ", palavrasecreta[i]);
}
else {
printf("_ ");
}
}
printf("\n");
}
void escolhepalavra() { FILE* f;
f = fopen_s("Texto.txt", "r");
if (f == 0) {
printf("Banco de dados de palavras não disponível\n\n");
exit(1);
}
int qtddepalavras;
fscanf_s(f, "%d", &qtddepalavras);
srand(time(0));
int randomico = rand() % qtddepalavras;
for (int i = 0; i <= randomico; i++) {
fscanf_s(f, "%s", palavrasecreta);
}
fclose(f);
}
void adicionapalavra() { char quer;
printf("Você deseja adicionar uma nova palavra no jogo (S/N)?");
scanf_s(" %c", &quer);
if (quer == 'S') {
char novapalavra[20];
printf("Digite a nova palavra, em letras maiúsculas: ");
scanf_s("%s", novapalavra);
FILE* f;
f = fopen_s("palavras.txt", "r+");
if (f == 0) {
printf("Banco de dados de palavras não disponível\n\n");
exit(1);
}
int qtd;
fscanf_s(f, "%d", &qtd);
qtd++;
fseek(f, 0, SEEK_SET);
fprintf(f, "%d", qtd);
fseek(f, 0, SEEK_END);
fprintf(f, "\n%s", novapalavra);
fclose(f);
}
}
int main() {
abertura();
escolhepalavra();
do {
desenhaforca();
chuta();
} while (!ganhou() && !enforcou());
adicionapalavra();
}
Oi Gente, eu estou usando o Visual Studio para programar e copiei o código igualzinho está no arquivo do site, e fiz as alterações que pede nas Funções scanf() e fscanf() pois no Visual Studio diz que tem que ser scanf_s() e fscanf_s(). Mas quando fui compilar está aparecendo o erro
"argumento do tipo "cons char" é incompatível com parâmetro do tipo FILE" relacionado a função f = fopen_s("Texto.txt", "r"); que serve para abrir o arquivo onde ficam as palavras do jogo, o arquivo .TXT. Alguém sabe o por que isso e como resolver?