søppel Skrevet 7. desember 2004 Del Skrevet 7. desember 2004 (endret) g++ test.c testlib.c -o test Edit: eventuellt i to skritt: g++ -c testlib.c g++ test.c testlib.o -o test Edit2: Anbefales: http://www.network-theory.co.uk/gcc/intro/ (sammens med manualen til gcc så klart; http://gcc.gnu.org/ ) Endret 7. desember 2004 av søppel Lenke til kommentar
anderlin Skrevet 7. desember 2004 Del Skrevet 7. desember 2004 Takker og bukker! Problem løst. Jeg passet på å kompilere testlib først, men det var altså ikke nok. Lenke til kommentar
søppel Skrevet 7. desember 2004 Del Skrevet 7. desember 2004 (endret) Jeg passet på å kompilere ... Legg merke til at gcc test.c -o test /både/ er kompilering og linking .. derfor unresolved externals. Kommer ganske klart frem i første linken ovenfor. bobafett: Du spiller Enemy Territory! heh Edit2: anderlin (under): N.P. :] Endret 7. desember 2004 av søppel Lenke til kommentar
anderlin Skrevet 7. desember 2004 Del Skrevet 7. desember 2004 Takker for linkene! Lenke til kommentar
Gjest Slettet-8fx0y6VV Skrevet 8. desember 2004 Del Skrevet 8. desember 2004 (endret) Jeg holder paa aa leke meg med boken Accelerated C++, og har naa stott paa et lite problem. Denne koden vill ikke kompilere: (Jeg bruker nyeste version av GCC) I vec.cpp har jeg laget meg min egen versjon av vector vector biblioteket og i str.cpp har jeg laget min egen versjon av string biblioteket . Jeg er ganske sikker paa at vec virker, men er usikker paa resten main.cpp #include <iostream> #include "str.cpp" using namespace std; int main() { Str foo; foo = "Hei! Virker dette?"; cout << foo << endl; } str.cpp: #include <algorithm> #include <iostream> #include <iomanip> #include <ios> #include <algorithm> #include <string> #include <vector> #include <stdexcept> #include <cctype> #include <iterator> #include <memory> #include "vec.cpp" using namespace std; class Str { // venner friend istream& operator>>(istream&, Str&); public: typedef Vec<char>::size_type size_type; // constructors Str() { } Str(size_type n, char c): data(n, c) { } Str(const char* cp) { copy(cp, cp+strlen(cp), back_inserter(data)); } template <class In> Str(In b, In e) { copy(b, e, back_inserter(data)); } // operators char& operator[](size_type i) { return data[i]; } const char& operator[](size_type i) const { return data[i]; } Str& operator+=(const Str& s) { copy(s.data.begin(), s.data.end(), back_inserter(data)); return *this; } operator char*(); operator const char*() const; // diverse size_type size() const { return data.size(); } private: Vec<char> data; }; //definering av funksjoner // operators ostream& operator<<(ostream&, const Str&); Str operator+(const Str&, const Str&); // resten av funksjonene ostream& operator<<(ostream& os, const Str& s) { for (Str::size_type i = 0; i != s.size(); ++i) os << s[i]; return os; } istream& operator>>(istream& is, Str& s) { //s.data.clear(); char c; while (is.get(c) && isspace(c)) ; if (is) { do s.data.push_back(c); while (is.get(c) && !isspace(c)); if (is) is.unget(); } return is; } Str operator+(const Str& s, const Str& t) { Str r = s; r += t; return r; } vec.cpp #include <algorithm> #include <iostream> #include <iomanip> #include <ios> #include <algorithm> #include <string> #include <vector> #include <stdexcept> #include <cctype> #include <iterator> #include <memory> using namespace std; template <class T> class Vec { public: typedef T* iterator; typedef const T* const_iterator; typedef size_t size_type; typedef T value_type; typedef T& reference; typedef const T& const_reference; Vec() { create(); } explicit Vec(size_type n, const T& t = T()) { create(n, t); } Vec(const Vec& v) { create(v.begin(), v.end()); } Vec& operator=(const Vec&); // as defined in $11.3.2/196 ~Vec() { uncreate(); } T& operator[](size_type i) { return data[i]; } const T& operator[](size_type i) const { return data[i]; } void push_back(const T& t) { if (avail == limit) grow(); unchecked_append(t); } size_type size() const { return avail - data; } iterator begin() { return data; } const_iterator begin() const { return data; } iterator end() { return avail; } const_iterator end() const { return avail; } private: iterator data; iterator avail; iterator limit; allocator<T> alloc; void create(); void create(size_type, const T&); void create(const_iterator, const_iterator); void uncreate(); void grow(); void unchecked_append(const T&); }; template <class T> void Vec<T>::create() { data = avail = limit = 0; } template <class T> void Vec<T>::create(size_type n, const T& val) { data = alloc.allocate(n); limit = avail = data + n; uninitialized_fill(data, limit, val); } template <class T> void Vec<T>::create(const_iterator i, const_iterator j) { data = alloc.allocate(i, j); // endret til unini fra ini limit = avail = uninitialized_copy(i, j, data); } template <class T> Vec<T>& Vec<T>::operator=(const Vec& rhs) { if (&rhs = this) { uncreate(); create(rhs.begin(), rhs.end()); } return *this; } template <class T> void Vec<T>::uncreate() { if (data) { iterator it = avail; while (it != data) alloc.destroy(--it); alloc.deallocate(data, limit - data); } data = limit = avail = 0; } template <class T> void Vec<T>::grow() { size_type new_size = max(2 * (limit - data), ptrdiff_t(1)); iterator new_data = alloc.allocate(new_size); iterator new_avail = uninitialized_copy(data, avail, new_data); uncreate(); data = new_data; avail = new_avail; limit = data + new_size; } template <class T> void Vec<T>::unchecked_append(const T& val) { alloc.construct(avail++, val); } *** EDIT *** Oppgradert koden litt Endret 8. desember 2004 av rapt0r Lenke til kommentar
søppel Skrevet 8. desember 2004 Del Skrevet 8. desember 2004 Ta ett skritt tilbake (i tid): * Vis koden slik den var når den kompilerte. * Vis hva du gjør/legger til av kode som gjør at den ikke kompilerer. * Isoler koden/problemet, slik som jeg har forklart her: http://forum.hardware.no/index.php?showtop...0entry3218476 Det kan hende noen andre her gidder å sette seg inn i hva/hvor og whatnot, men jeg føler ikke for det. Lenke til kommentar
saboi Skrevet 8. desember 2004 Del Skrevet 8. desember 2004 for meg virker det som om du har glemt aa definere operator= for Str, da er det jo ikke saa rart hvis det ikke funker aa gjoere Str = "bahaha" ellers er det jo lurt aa si HVA som ikke virker. tror heller ikke det smarteste du gjoer er aa ha stringrepresentasjonen som en vektor. typedef T* iterator huhu Lenke til kommentar
Gjest Slettet-8fx0y6VV Skrevet 8. desember 2004 Del Skrevet 8. desember 2004 Jeg har gjort litt mere testing, og funnet ut at vec.cpp og main.cpp har ingen feil. Og saa fant jeg ut at alle feilene ligger i str.cpp. Jeg fant ogsaa noen fil i koden selv, men den kompilerer fortsatt ikke. (koden er oppgradert i min forste post) Hva som skjer naar jeg kompilerer: [espen@localhost c12]$ c++ eks1.cpp -o eks1 vec.cpp: In member function `void Vec<T>::create(const T*, const T*) [with T = char]': vec.cpp:26: instantiated from `Vec<T>::Vec(const Vec<T>&) [with T = char]' str.cpp:82: instantiated from here vec.cpp:79: error: invalid conversion from `const char*' to `unsigned int' vec.cpp:79: error: initializing argument 1 of `_Tp* __gnu_cxx::new_allocator<_Tp>::allocate(size_t, const void*) [with _Tp = char]' Lenke til kommentar
søppel Skrevet 8. desember 2004 Del Skrevet 8. desember 2004 (endret) Jupp .. feilen er på linje 79 .. Edit: i vec.cpp ja Er du 100% sikker på at det er klin umulig å korte ned koden og få den inn i én paste? Endret 8. desember 2004 av søppel Lenke til kommentar
glad Skrevet 20. desember 2004 Del Skrevet 20. desember 2004 (endret) *fjernet* Endret 21. desember 2004 av glad Lenke til kommentar
☀ ❄ Skrevet 20. desember 2004 Del Skrevet 20. desember 2004 Jeg er helt sikker på at den ikke virker. Uansett, hva er det du prøver å oppnå? Lenke til kommentar
Dead_Rabbit Skrevet 20. desember 2004 Del Skrevet 20. desember 2004 (endret) //denne koden virker men dere ser jo at jeg har brukt if og else problemet er at du ikke får mulkighet til å skrive svaret Det er jo ikke veldig rart . Hvorfor gjør du ikke noe med det, hvis du har lyst til å skrive svaret? Hva er egentlig vitsen med de if og else greiene dine? Jeg er helt sikker på at den ikke virker. Uansett, hva er det du prøver å oppnå? Si det du! Edti: Burde slutte å disse html-liknende greiene for hånd jeg ass. *sukk* Endret 21. desember 2004 av zirener Lenke til kommentar
glad Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 //denne koden virker men dere ser jo at jeg har brukt if og else problemet er at du ikke får mulkighet til å skrive svaret Det er jo ikke veldig rart . Hvorfor gjør du ikke noe med det, hvis du har lyst til å skrive svaret? Hva er egentlig vitsen med de if og else greiene dine? Jeg er helt sikker på at den ikke virker. Uansett, hva er det du prøver å oppnå? Si det du! det skal bli et matte regne program har fikset det nå Lenke til kommentar
Dead_Rabbit Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 Et matte program... okey! Har du skrevet om koden fulstendig eller? For den forrige koden der så litt rar ut for å si det slik. Ihvertfall til et regne program å være... Lenke til kommentar
genstian Skrevet 21. desember 2004 Forfatter Del Skrevet 21. desember 2004 Bruk cin Lenke til kommentar
☀ ❄ Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 det skal bli et matte regne program har fikset det nå Få se koden, da Matte regne programmer (...) er alltid gøyale. Lenke til kommentar
glad Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 det skal bli et matte regne program har fikset det nå Få se koden, da Matte regne programmer (...) er alltid gøyale. //man kan vel kalle dette en slags kalkulator det er vel en el forandring. #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { std::cout<<"skriv et tall du vil gange trykk deretter enter så skriver du et nytt tall"<<std::endl; int a; int b; int c; int d; std::cin >> a; std::cin >> b; c = a * b; std::cerr; system("Pause"); d = c; std::cout << d; system("Pause"); return 0; } Lenke til kommentar
saboi Skrevet 21. desember 2004 Del Skrevet 21. desember 2004 jeg likte beste denne delen: c = a * b; std::cerr; system("Pause"); d = c; std::cout << d; Lenke til kommentar
søppel Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 #include <iostream> using namespace std; int main() { for(;;) { unsigned int w = rand() % 100; for(unsigned int i = 0; i < w; i++) cout << " "; cout << "*"; } return(0); } // main *screensaver* ..whohoooo Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå