Tak for det hurtige svar :-)
Jeg har siddet og prøvet at få det til at virke, men det gør det stadig ikke :-(
Her er min kode:
#include <iostream>
#include <fstream>
#include <string>
int PIECE_KING = 1;
int PIECE_KNIGHT = 2;
int replace_letter(char letter) {
char letters[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'};
for(int i = 0; i < 8; i++) {
if(letter == letters[i]) {
return i;
}
}
}
void read(const char filename[], int* field[][8]) {
std::ifstream file(filename);
std::string line;
getline(file, line);
for(int i = 0; i < ((int) line.length()); i += 2) {
int x = replace_letter(line.at(i));
int y = (line.at(i+1) - '0') - 1; //Vi trækker null-terminatoren '0' fra.
bool king = true;
if(i == 0) {
king = false;
(*field)[x][y] = PIECE_KING;
}
else {
(*field)[x][y] = PIECE_KNIGHT;
}
}
}
int main()
{
int field[8][8]; //Et multidimensionelt array der symboliserer felterne.
read("CAMELOT.IN", &field);
return 0;
}
.. og min build log:
-------------- Build: Debug in Camelot ---------------
Compiling: main.cpp
/home/svend/Dropbox/C++/Camelot/main.cpp: In function ‘int main()’:
/home/svend/Dropbox/C++/Camelot/main.cpp:41: error: no matching function for call to ‘read(const char [11], int (*)[8][8])’
/usr/include/unistd.h:357: note: candidates are: ssize_t read(int, void*, size_t)
/home/svend/Dropbox/C++/Camelot/main.cpp:19: note: void read(const char*, int* (*)[8])
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
Jeg har prøvet at ændre på syntaxen hvor jeg kalder funktion uden held.
Indlæg senest redigeret d. 08.02.2011 23:43 af Bruger #14210