Sida 1 av 1

C++ Fil och matris hantering [LÖST]

Postat: 08 aug 2007, 15:11
av svartberg
Jag har ett irriterande problem när jag ska läsa från en fil och lägga in dess data i en matris.
Filen ser ut på följande sett:

11111111111111111111
1s000000000000000011
10011111111111111011
10000001110011111011
10011000010000011011
11111100111100011011
10000000001000111011
10111111111111111011
10111000000000000011
10111011111110011111
10000011111110000001
11111111111110010111
10000000000000010111
11011111111111110111
11011111000001000111
11011111010111011111
11000000010000011111
11111111110011111111
111111111100000000e1
11111111111111111111

20 rader och 20 kolumner. Vill att varje tecken ska läggas i en char [20][21] matris ( 21 kolumner för att hålla \0 tecknet )

Kod: Markera allt

void initLevel(char level[20][21] ){

	ifstream fileLevel;
	fileLevel.open ("level1.txt"); //Öppna filen level1.txt som innehåller datan
	if (fileLevel){

		while (! fileLevel.eof() ){ // Sålänge strömmen inte hittar fil slutet

			for (int i=0; i<20; i++){
				for (int j=0; j<21; j++){
					fileLevel >> level[i][j];
				}
			}
		}
		fileLevel.close();

	} // End if

} // End function

Mitt problem jag får sedan är att jag inte kan göra en jämförelse för en plats i matrisen för att kolla vilket tecken det gäller.

T.ex.

Kod: Markera allt

   if ( level[2][3] ==  '1' ){ // Kolla om dess plats i matrisen är tecknet '1'
        // gör något här
   }

Då säger kompilatorn följande till mig :
error C2446: '==' : no conversion from 'int' to 'char *'

Det jag tycker är konstigt är hur kompilatorn kan tro att min char [] [] matris helt plötsligt är en heltals matris.


Någon som har några ideer, är inte så jätteduktig på C++.

SV: C++ Fil och matris hantering

Postat: 08 aug 2007, 15:48
av upnorth
Vet inte om det är relevant, var ett tag sedan jag satt med det här nu, men var har du deklarerat level[j];?

Skulle också kunna vara det faktum att du satt '' runt ettan i ifsatsen, prova:

  if ( level[2][3] ==  1 ){ // Kolla om dess plats i matrisen är tecknet '1'
        // gör något här
  }

SV: C++ Fil och matris hantering

Postat: 08 aug 2007, 15:51
av per9000
1. Kolla att inläsningen är ok, till exempel genom att testa att skriva ut innehållet på skärmen (funkar det inte är det ngt fel på inläsningen).

2. Behöver du kanske använda strcmp? [jag kan nästan bara C nuförtiden, så jag vet inte vad det heter riktigt]

3. http://en.wikibooks.org/wiki/C++_Programming

4. Borde du göra något i stil med detta istället "fileLevel++ >> level[j];"

/P

SV: C++ Fil och matris hantering

Postat: 08 aug 2007, 16:18
av svartberg
Hmm jag har kommit lite längre nu. Nu testade jag ett vanligt konsol program och då fungerade det utmärkt hela vägen.
Jag läser en sommarkurs i Win32 programmering ( Ska lära mig något GUI som GTK eller liknande för Linux när jag är klar med kursen )

Hursomhelst så jobbar jag med ett grafiskt program, där min matris en global variabel för att jag ska komma åt den överallt och speciellt inne i WinProc funktionen som finns. Men just i den funktionen så får jag det där skumma felet, överallt annars är det inga problem att lägga in min if sats.
Sitter nog på fel forum nu o skriver om Win32, men gillar detta forum o folket här så sökte hjälp.

Ska i alla fall undvika Win32 så mycket som möjligt när denna kurs är klar, den saken är säker ;D

SV: C++ Fil och matris hantering

Postat: 08 aug 2007, 16:59
av svartberg
Det är nog jag som hade fått hjärnsläpp. Mitt problem var att jag hade en global variabel jag kunde leka med överallt, och även en lokal variabel med samma namn i WinProc funktionen. Inte konstigt att det blev fel just i den funktionen.

Får skylla på för mycket sittande vid datorn och för lite Coca Cola som orsakade problemet  ;)

SV: C++ Fil och matris hantering

Postat: 09 aug 2007, 09:08
av per9000
svartberg skrev: [...] för lite Coca Cola [...]
Testa Jolt Cola, då går det nog bättre ;D

/P

SV: C++ Fil och matris hantering

Postat: 09 aug 2007, 20:41
av Galgalid
per9000 skrev:
svartberg skrev: [...] för lite Coca Cola [...]
Testa Jolt Cola, då går det nog bättre ;D

/P
Eller blanda 15 kaffe och 8 vatten....det gjorde jag 1 gång(känner ingen skillnad på styrkan)...låg och skakade i 3 timmar efteråt av en koffeinshock(jag drack typ 1 liter kaffe då....) ;D

SV: C++ Fil och matris hantering

Postat: 10 aug 2007, 09:40
av per9000
Galgalid skrev:
per9000 skrev:
svartberg skrev: [...] för lite Coca Cola [...]
Testa Jolt Cola, då går det nog bättre ;D

/P
Eller blanda 15 kaffe och 8 vatten....det gjorde jag 1 gång(känner ingen skillnad på styrkan)...låg och skakade i 3 timmar efteråt av en koffeinshock(jag drack typ 1 liter kaffe då....) ;D
[OFF-TOPIC-VARNING]

Jag slutade med kaffe i somras (men, ok, jag dricker om mormor bjuder och till fint) på grund av koffeinkickar, dålig mag-och-tarm och ett fysiskt beroende. Hade ont i huvudet i de tre första dagarna av semestern, men nu är jag fri :)

/P

SV: C++ Fil och matris hantering [LÖST]

Postat: 16 aug 2007, 15:08
av steqve
vilken kompilator? kan det vara så att det är en fråga om char/wide_char?

dvs den tycker att du försöker jämföra en char med en wchar (uint16)?