Forum: Programmeringsproblem

Forum huvudsida -> Projekt -> Programmeringsproblem

Sidor: 1

Till botten

Schtenne 17:28 - 31:a Mars 2009 | Post #1
Medlem
Inlägg: 3


Skicka PM
Hallå, jag har ett problem. Och jag behöver snabba och korrekta svar, för detta är ett projekt som skall vara inne senast fredag den här veckan:

När jag definierar den här tredimensionella vektorn...

char translation[2][30][6] =
{
    {{'A'},{'B'},{'C'},{'D'},{'E'},{'F'},{'G'},{'H'},{'I'},{'J'},{'K'},{'L'},{'M'},{'N'},{'O'},{'P'},{'Q'},{'R'},{'S'},{'T'},{'U'},{'V'},{'W'},{'X'},{'Y'},{'Z'},{197},{196},{214}},
    
{{".-"},{"-..."},{"-.-."},{"-.."},{'.'},{"..-."},{"--."},{"...."},{".."},{".---"},{"-.-"},{".-.."},{"--"},{"-."},{"---"},{".--."},{"--.-"},{".-."},{"---"},{'-'},{"..-"},{"...-"},{".--"},{"-..-"},{"-.--"},{"--.."},{".--.-"},{".-.-"},{"---."}}

};

...så får jag det här felmeddelandetSmiley...

1>c:\b\cpp2\ppfunktioner.h(3) : warning C4309: 'initializing' : truncation of constant value

Jag har jävlart kollat allt och det verkar vara rätt med VS2008 vägrar kompilera ihop det.

Programmet skall kunna översätta från morsekod till vanlig text och tvärt om dvs A = .- B = -... osv osv.

[2] är ju bokstäverna och morsekoderna. [30] är varje bokstav/morsekod och [6] är varje enskilt tecken i morsekoden/texten. Anledningen till att jag kör en 3D-vektor är att char bara tar ett tecken dvs vid 2D-vektor skulle jag bara kunna ta en punkt, ett bindestreck osv och då får jag inte ihop till en morsekod eftersom en morsekod består av flera tecken.

Men vad är nu fel med dettaSmiley.




martin310 18:54 - 31:a Mars 2009 | Post #2
Medlem
Inlägg: 132


Skicka PM
Läs här: http://msdn.microsoft.com/en-us/library/sz5z1byt.aspx

-------------------------

Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad!





Schtenne 19:08 - 31:a Mars 2009 | Post #3
Medlem
Inlägg: 3


Skicka PM
Jag läste det där och jag fattade direkt, men grejen är den att jag har som ni kan se reserverat så pass mycket minnesutrymme för den här vektorn att det inte är några problem, ja jag har tillochmed reserverat lite mer än vad som behövs.

Vad kan då vara fel ???
Nåt måste det ju vara eftersom jag får varning för det !!!




tobbez 02:26 - 1:a April 2009 | Post #4
Medlem
Inlägg: 364


Skicka PM
Varningen uppstår för att du försöker tilldela en char till en char-sträng. Byter du ut alla ' till " ('A' blir "A" och så vidare) försvinner den.




Vitdom 15:18 - 1:a April 2009 | Post #5
Medlem
Inlägg: 71


Skicka PM
Felet är att du försöker tilldela ett char värde till en char pekare.

  1. char translation[2][30][6] =
  2. { // Två index
  3. { // 30 index
  4. {"A"}, // Index 0(30), sex index, rätt
  5. {'B'}, // Index 1(30), sex index(char*), fel,
  6. // du försöker tilldela char värdet 'B' till en char pekare(char*)
  7. // som pekar på ett minnesblock som allokerats för sex char
  8. {"C"}...
  9. }
  10. { // 30 index
  11. ...
  12. }
  13. };


-------------------------



Senast redigerad 15:26 - 1:a April 2009


Schtenne 21:16 - 1:a April 2009 | Post #6
Medlem
Inlägg: 3


Skicka PM
Alltså jag blir jävlar galen det dyker upp en massa felmeddelanden som inte är fel men ändå felSmiley !!!

En massa jävla felkoder som man inte fattar vad som kan va fel:

1>c:\b\cpp2\ppfunktioner.h(3) : warning C4309: 'initializing' : truncation of constant value
1>c:\b\cpp2\ppfunktioner.h(3) : warning C4309: 'initializing' : truncation of constant value
1>c:\b\cpp2\ppfunktioner.h(3) : warning C4309: 'initializing' : truncation of constant value
1>c:\b\cpp2\ppfunktioner.h(10) : error C2065: 'cout' : undeclared identifier
1>c:\b\cpp2\ppfunktioner.h(15) : error C2065: 'cin' : undeclared identifier
1>c:\b\cpp2\ppfunktioner.h(25) : error C2660: 'operation' : function does not take 1 arguments
1>c:\b\cpp2\ppfunktioner.h(32) : error C2446: '==' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(32) : error C2040: '==' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(33) : error C2065: 'cout' : undeclared identifier
1>c:\b\cpp2\ppfunktioner.h(38) : error C2446: '!=' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(38) : error C2040: '!=' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(38) : error C2446: '>' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(38) : error C2040: '>' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(42) : error C2446: '!=' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(42) : error C2040: '!=' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(42) : error C2446: '<' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(42) : error C2040: '<' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(55) : error C2106: '=' : left operand must be l-value
1>c:\b\cpp2\ppfunktioner.h(57) : error C3861: 'operation2': identifier not found
1>c:\b\cpp2\ppfunktioner.h(64) : error C2446: '==' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(64) : error C2040: '==' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(65) : error C2065: 'cout' : undeclared identifier
1>c:\b\cpp2\ppfunktioner.h(70) : error C2446: '!=' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(70) : error C2040: '!=' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(70) : error C2446: '>' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(70) : error C2040: '>' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(74) : error C2446: '!=' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
1>c:\b\cpp2\ppfunktioner.h(74) : error C2040: '!=' : 'const char [6]' differs in levels of indirection from 'int'
1>c:\b\cpp2\ppfunktioner.h(74) : error C2446: '<' : no conversion from 'int' to 'const char *'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

Vad ska jag göra ???

Jag har ändrat alla ' till " nu, men det har sagt upp sig totalt.

Kan det vara så att C++ konverterar char-vektorn (i varje element lagras ett heltal) till char-pekare och då blir hela meddelandet som skickas där första pekar-elementet och lagras därför inte som en radda heltal. Istället för att varje bokstav i meddelandet är ett element av char-typen och lagras därför i minnet som ett heltal ???




martin310 15:52 - 2:a April 2009 | Post #7
Medlem
Inlägg: 132


Skicka PM
Försök med detta:

  • Deklarera cout (using std::cout;)

  • Deklarera cin (using std::cin;)

  • rad 25 vet ej...

  • Gör en if stats på "no conversation from 'int' to 'string'


-------------------------

Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad!





Sidor: 1

Forum huvudsida -> Projekt -> Programmeringsproblem
Atom feed

Du får inte posta i den här tråden | Till toppen