2016-05-19 1 views
-1
#include "Header.h" 

void mostraTabuleiro(int lin, int col, int **m){ 
int i, j, l; 
char k = 65; 

for (l = 1; l <= col; l++){ 

    printf("\t%c", k); 
    k++; 

} 
printf("\n"); 
    for (i = 1; i <= lin; i++){ 
     printf("%d", i); 
     for (j = 1; j <= col; j++){ 
      if (i == lin && j == col) 
       printf("\t[X]");     
      else 
       printf("\t[*] "); 
     } 
     printf("\n"); 
    } 
} 

を保存し、今私は、ファイルにmostratabuleiroを保存したいとそれはdoesnのその後私は、機能mostraTabuleiroでのfprintfを置けば、私はこのはどのようにC言語でファイルに

int GuardaFicheiro(char *nome_fich){ 

FILE *fnovo; 
char *novo_fich = "estadosTabuleiro.txt"; 



fnovo = fopen(novo_fich, "wt"); 
if (fnovo == NULL){ 
    printf("Erro ao abrir o ficehiro de texto %s para escrita.\n", novo_fich); 
    return; 
} 




//mostraTabuleiro(6, 8, Tabuleiro, fnovo); 


fclose(fnovo); 
} 

を始めファイルは何もありません。ファイルは空白です。 )(その使用のfprintf後

fnovo = fopen(novo_fich, "w"); 

;:

+1

を使用してコードをコンパイルチェックして、あなたのコード内の多くの未使用の変数があります(http://www.cplusplus .com/reference/cstdio/fprintf /)! – francis

+1

これは、 'malloc'や' structure'とは何も関係ありません。 –

+1

問題は何ですか? –

答えて

-1

S.O.に質問する必要がありますのでご注意ください。 thisスタイルです。 thisも読むことができます。

void mostraTabuleiro(int lin, int col, int **m, FILE *fnovo) { 

    int i, j, k; 

    for (k = 1; k <= col; k++){ 
     fprintf(fnovo, "\t%d", k); 
    } 

    fprintf(fnovo, "\n"); 
     for (i = 1; i <= lin; i++){ 
      fprintf(fnovo, "%d", i); 
      for (j = 1; j <= col; j++){ 
       if (i == lin && j == col) 
        fprintf(fnovo, "\t[X]"); 
       else 
        fprintf(fnovo, "\t[*] "); 
      } 
     fprintf(fnovo, "\n"); 
     } 
} 

void GuardaFicheiro(int lines, int columns, int **m){ 
    FILE *fnovo; 
    char *novo_fich = "estadosTabuleiro.txt"; 

    fnovo = fopen(novo_fich, "wt"); 
    if(fnovo == NULL){ 
     printf("error opening file %s for writing.\n", novo_fich); 
     return; 
    } 
    // this will write to the file 
    mostraTabuleiro(lines, columns, m, fnovo); 

    // this will write on screen : stdout 
    mostraTabuleiro(lines, columns, m, stdout); 

    fclose(fnovo); 
} 

int iniciaJogo() { 

    tabuleiro tab; 
    int i, j, m, n; 
    int res = 0; 
    int **Tabuleiro; 
    int cont = 0; 
    int iteracoes = 0; 

    do{ 
     do{ 
      printf("Dimensoes do ambiente\nLines\n"); 
      scanf("%d", &tab.N_Linhas); 
     } while (tab.N_Linhas < 4 || tab.N_Linhas > 8); 
     do{ 
      printf("Columns\n"); 
      scanf("%d", &tab.N_Colunas); 
     } while (tab.N_Colunas < 6 || tab.N_Colunas > 10); 
    } while (tab.N_Linhas > tab.N_Colunas); 

    Tabuleiro = criaTabuleiro(tab.N_Linhas, tab.N_Colunas); 

    GuardaFicheiro(tab.N_Linhas, tab.N_Colunas, Tabuleiro); 
    //mostraTabuleiro(tab.N_Linhas, tab.N_Colunas, Tabuleiro, fnovo); 
} 

そして、同様mainことがあります

int main(){ 
    iniciaJogo(); 
    return 0; 
} 

私は上記のコードは、あなたのために働くだろうと確信しています。しかし、Cプログラミング - functionsstructures、およびFileIOについて少しは読んでください。

、あなたが機能[ `fprintfの()`]の例を見てみgcc -Wall -Wextra yourFileName.c

+0

私はそれが動作すると思うが、私はmostraTabuleiro(6、8、fnovo)を置くことはできません。 6と8がその行と列を引き起こし、プレーヤーが選んだものです。彼らは固定されていません。 – user6236820

+0

しかし、私は... 'struct tabuleiro {struct struct tabuleiro { \t int N_Linhas; \t int N_Colunas; }; typedef struct tabuleiro tabuleiro; 'と私はそれを使用する必要があります。 – user6236820

+0

質問を編集してより多くのコードを表示できます。 – user6236820

1

これはへ

fnovo = fopen(novo_fich, "wt"); 

を補正する必要があります

​​
関連する問題