如何在C中保存文件

时间:2016-05-19 16:45:41

标签: c fopen

#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");
    }
} 

现在我想在文件中保存最多的笔记本,然后我开始这样做

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之后,它就不会出现任何内容,而且文件是空白的。

2 个答案:

答案 0 :(得分:1)

这应该更正

fnovo = fopen(novo_fich, "wt");

进入:

fnovo = fopen(novo_fich, "w");

之后使用fprintf();

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

答案 1 :(得分:-1)

请注意,您应该询问S.O.以this风格。您还可以阅读this

Line Received from the external process: echo > foo

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

我确信上面的代码对您有用。但是你应该读一点C编程 - functionsstructuresFileIO

您的代码中有许多未使用的变量,您可以检查使用int main(){ iniciaJogo(); return 0; } 编译代码