int array?

Tags:    c++ diverse

Jeg vil lave et int fx:
int tal;
så vil jeg på en eller anden måde kunne ligesom i en array sige:
int tal[1] = 3;
int tal[0] = 1;
og så er tal 13 jeg kan godt lave et int array men så tager compileren dem for seperate tal og så kan man ikke bruge cin
fx:
Fold kodeboks ind/udKode 

her giver den fejlen:
no match for `std::istream& >> int[20]' operator

så ved jeg at man i nogle andre sprog kan gøre sådan her:
Fold kodeboks ind/udKode 


her giver den så:
invalid types `int[int]' for array subscript


så jeg skal bruge et array der fungerer som char bare med int er der en måde man kan lave et sådant array?




6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Du må sgu undskylde alle de fejl, men kopierede teksten ind her før jeg compilede det...
Men her har du den rettede udgave:

#include <iostream>
#include <string>
int main()
{

string tal;
string tallet;
string final;
cin >> tal;
cin >> tallet;
cout << "tal: " << tal << endl;
final = tal + tallet;
cout << final << endl;
system("PAUSE");

return 0;
}

Men du ville se det sidste ciffer af tre cifre eller...
Hvis det er det, så er jeg nok ikke helt rutineret nok til det...
Hvis du er igang med et projekt, så kunnenjeg lige se i hvilken forbindelse du skal bruge funktionen til, hvis du lige sætter nogle kommentarer....
Jeg er heller ikke selv ekspert i c++, så jeg ville sikkert også lære noget...
Og nej jeg bruger Blodshed dev c++, men tror ikke det er meget forskel på dem...
Hvis ikke det er helt rigtigt hvad jeg sagde med de der cifre, kan du ihvertfald lige besvare mig...
Håber da det hjælper...

Mvh

Christian Sørensen



Jo nu skal du bare høre.
Jeg syntes faktisk dit spørgsmål så ret relevant ud, fordi jeg ikke selv kendte en besvarelse på det.
Men jeg prøvede mig frem, og kom frem til dette:

#include <iostream>
#include <string>
int main()
{

string tal;
string tal2;
string final;
cin >> tal;
cin >> tallet;
cout << "tal: " << tal << endl;
final = tal + tal2;
cout << final << endl;
system("PAUSE");

return 0;
}

Ser du string, hvis ikke du kender den, kan indeholde alt.
Både tegn, og tal(som også er tegn).
Når jeg så skriver:
final = tal + tal2;
er det lige som at sige: signes handling = signe spiser + en is.
Signe spiser en is.
Så der er det kun bogstaverne der bliver lagt sammen, fordi compileren er ligeglad med om det er et tal eller et bogstav, så længe det bare er et string array.

Håber du kan bruge det.
MVH

Christian



jo jeg kender godt string og det var dette jeg var ude efter det skulle bare bruge int(tal) istedet for bogstaver så når du plusede 56 og 45 blev det 101 og ikke 5645 og så ikke for at sige noget men vis du selv skulle bruge det nogle fejl jeg har rettet
Fold kodeboks ind/udKode 

hvad ikke om disse fejl også er der i visual c++ men de er der i borlands dev-c++ vis du ved hvordan man gør kunne du så ikke lige poste løsningen hvor det var en form for"int string" så den kunne regne decimal tal

Hvis du stadig ikke helt har forstået det så skal jeg bruge en alimdelig int hvor man bare kan gå ind i den hved hjælp ad [2] der viser det tredje tegn i integeren



Nu tror jeg, at jeg har løsningen...
Det er rigtig hvad du og jeg sagde, altså skal du have en string[fx 1]

Se dette eksempel:

#include <iostream>
#include <string>
int main()
{
string test;
test = "Hallo";
cout << test[1] << endl;
cout << "Tegn 2 = " << test[2] << endl;
system ("PAUSE");

return 0;
}

Du skal altså bruge en string, men parameterne var rigtige nok...
Jeg håber at dette hjælper...
Ellers skal du bare skrive tilbage...

MVH

Christian




Jeg er ikke helt sikker men jeg tror man skal bruge en form for "typecasting" det følgende eksempel ved jeg godt ikke virker men bare for at vise hvad jeg mener der skal ske

#include <iostream>
#include <string>
int main()
{

string tal;
string tallet;
int final; //her har vi ændret den til int
cin >> tal;
cin >> tallet;
cout << "tal: " << tal << endl;
final = (int)tal + (int)tallet; /*kan ikke huske formlen desværre men jeg ved hvis du har en "int tal = 5" og skal putte det ind i en char så gør du sådan char charTal = (char)tal så behandler den tal som en char man kan gøre det samme med int mener jeg man skriver bare ikke int men et eller andet jeg ikke kan huske ved du det?*/
cout << final << endl;
system("PAUSE");

return 0;
}

ja nu har jeg jo sat alt min tekst ind i kommentaren, men har er den kort kan du formlen på typecasting fra string/char til int?



Jeg er ikke helt sikker men jeg tror man skal bruge en form for "typecasting" det følgende eksempel ved jeg godt ikke virker men bare for at vise hvad jeg mener der skal ske

#include <iostream>
#include <string>
int main()
{

string tal;
string tallet;
int final; //her har vi ændret den til int
cin >> tal;
cin >> tallet;
cout << "tal: " << tal << endl;
final = (int)tal + (int)tallet; /*kan ikke huske formlen desværre men jeg ved hvis du har en "int tal = 5" og skal putte det ind i en char så gør du sådan char charTal = (char)tal så behandler den tal som en char man kan gøre det samme med int mener jeg man skriver bare ikke int men et eller andet jeg ikke kan huske ved du det?*/
cout << final << endl;
system("PAUSE");

return 0;
}

ja nu har jeg jo sat alt min tekst ind i kommentaren, men har er den kort kan du formlen på typecasting fra string/char til int?





t