Итак, сначала я написал все свои функции в своей основной.Но это занимает слишком много места, поэтому я попытался сделать заголовочные файлы и исходные файлы моего кода.
Но проблема возникает, когда я отправляю таблицу [x] [y] из основного файла в функциюв другом файле данные таблицы аналогично конвертируются, и они изменяют значения таблицы, делая ее непригодной для использования.
Я изначально собираю символы из чисел, например: «0» или «1'или' 2 '... И когда я печатаю значения с printf("%c", level[x][y]);
в двух функциях, основной и одной из другого файла, он сначала работает в основном, и он не работает должным образом во второй функции,Он печатает пробелы или другие символы полностью изменены.
Я пробовал также с printf("%d", level[x][y]);
, но это не работает так же хорошо.Результаты разные, в первой функции показывается «код» символа, а во второй - адреса памяти, но я не уверен.
Исходное чтение файла похоже (но есть100 строк и 100 столбцов):
000000000000000
000000000100000
000000000000000
#include <stdio.h>
#include <stdlib.h>
#define tx 100
#define ty 100
#include "function.h"
void fill_level(char *file, int level[tx][ty]){
FILE *fichier=NULL;
fichier = fopen(file, "r");
int x, y;
char buff = '0';
if(fichier == NULL) printf("Erreur de lecture du fichier de niveau");
else {
for(y = 0;y < ty; y++){
for(x = 0;x < tx; x++) {
buff = fgetc(fichier);
level[x][ty-y] = buff;
}
}
}
fclose(fichier);
}
int main() {
int level_1[tx][ty]={{0}};
fill_level("Level 1.txt", level_1);
int i, j;
for(i = 0;i < ty;i++){
for(j = 0;j < tx;j++){
printf("%c", level_1[j][i]);
}
printf("\n");
}
//then I call the function from the second file
summon_entity_level(level_1);
}
Параметры второй функции:
void summon_entity_level(int levelEnt[tx][ty]);
И вторая функция:
#define tx 100
#define ty 100
void summon_entity_level( int levelEnt[tx][ty]){
int i, j;
for(i = 0;i < ty;i++){
for(j = 0;j < tx;j++){
printf("%c", levelEnt[j][i]);
}
printf("\n");
}
}
Iожидайте что-то вроде этого (работает в основном):
000000000000000
000000000100000
000000000000000
Но я получаю нечто подобное (во второй функции из другого файла):
`dyüm áP░ ┴ C ð 0î
CIIC ,aß@H I