C语言如何保存到一个文件中

How to save in a file in C

#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 保存在一个文件中,我开始这样做

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 放入函数 mostraTabuleiro 之后它不会显示任何内容并且文件为空白。

这应该更正

fnovo = fopen(novo_fich, "wt");

进入:

fnovo = fopen(novo_fich, "w");

之后使用 fprintf();

fprintf(fnovo, /*source char * */);

请注意,您应该在 S.O 上提问。在 this style. You can also read 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 编程的内容 - functions, structures, and FileIO.

您的代码中有许多未使用的变量,您可以使用gcc -Wall -Wextra yourFileName.c

检查编译您的代码