Bonjour,
Je suis étudiant et je travaille sur un petit projet de bataille navale en langage C sur Unix.
J'ai une fonction save, qui écrit dans un fichier les grilles des deux joueurs du jeu en guise de sauvegarde.
Je voudrai maintenant pouvoir les charger et les utiliser dans mon programme pour continuer la partie. Comment faire?
Voici ma fonction save :
#include <stdio.h>
#include <cstdio.h>
void save(Grille A,Grille B,Grille A2,Grille B2){
freopen ("save.txt","w",stdout);
aff_Grille(A,B); //affiche les grilles en paramètre, cote a cote
printf("\n");
aff_Grille(A2,B2);
fclose(stdout);
}
et le type Grille :
#define N 10;
typedef char Grille[N][N];
Merci :)

scanf("%\n") ?
Tu souhaites faire quoi ?
Ensuite, j'imagine que tu voulais mettre fscanf au lieu du scanf ?
Et pourquoi une boucle j<2 ?
Sinon, attention au redirection...
Il n'y a pas de solution portable pour restaurer le flux sur la sortie standard.
Pour réussir, il faut jouer avec dup / dup2 et sauvegarder le descripteur par dup(fileno(stdout));
Bref rien de très joli. Il vaut mieux éviter ce genre de redirection.
Cdlt,
Je voulais juste donner l'algorithme général. La boucle sur "j", c'est car tu as deux grilles. Mais après relecture, il y en a 4 : 2 pour chaque joueur.
Merci de ta réponse sur stdout, ça me semblait trop simple aussi.