Używam Visual Studio 2005 (C \ C++).C - Otwieranie pliku wewnątrz funkcji za pomocą fopen
Przekazuję ciąg znaków do funkcji jako tablicę znaków. Chcę otworzyć przekazany plik jako parametr i użyć go. Wiem, że mój kod działa w pewnym stopniu, ponieważ jeśli podam hardcode jako pierwszy parametr, działa on idealnie.
Zauważam, że jeśli patrzę na wartość jako zegarek, wartość zawiera adres poza literałem ciągu. Próbowałem przekazać nazwę pliku jako wskaźnik, ale potem narzeka na konwersję typu za pomocą __w64. Jak już powiedziałem, działa dobrze z "filename.txt" zamiast nazwy pliku. Jestem zaskoczony.
void read(char fileName[50],int destArray[MAX_R][MAX_C],int demSize[2])
{
int rows=0;
int cols=0;
int row=0;
int col=0;
FILE * f = fopen(fileName,"r");
...
Kod funkcji powołaniem jest:
char in_filename[50];
int dem[MAX_R][MAX_C];
int dem_size[2];
get_user_input(in_filename);
read(in_filename, dem, dem_size);
W zegarku dodałem do pliku pojawi się odpowiedni tekst, więc dane są przekazywane w coraz
Hm ... Dużo robię z MinGW. Funkcja, która później otwiera plik, przekazuje parametr "const char * filename" - MinGW nigdy nie narzekał na to. – mingos