| | |
| Stránka: 1 z 1
| [ Príspevkov: 19 ] | |
Autor | Správa |
---|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina |
Ahojte! Akurát som začal s C++ (predtým Java) a mám problém v každom programe, keď narazím na nasledovnú vec: Mám funkciu, ktorá vracia string, napríklad std::string napis2x(std::string slovo) //napíše dva krát za sebou nejaké slovo. No a používam ju napríklad takto: Kód: #include <iostream> #include <string> using namespace std;
//nejaký ten main:
std::string slovo; cout << "Zadaj slovo: \n"; cin >> slovo; cout << "Tvoje slovo napísané dva krát za sebou je " << napis2x(meno); No a vždy po spustení mi vyhodí chybu: Kód: main.obj : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl napis2x(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?napis2x@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@Z) referenced in function _main 1>C:\Users\Desktop\Documents\Visual Studio 2013\Projects\Pokus\Debug\Pokus.exe : fatal error LNK1120: 1 unresolved externals Vie niekto čo robím zle? Už som z toho fakt na nervy, to C++ je pre mňa úplne nepochopiteľné.. // Spojený príspevok Pia 14.11.14 19:07Poznámka: Smerníky ešte neovládam, takže sa snažím robiť veci bez nich
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 14.11.2014 21:11 | |
|
Naozaj tam máš tú funkciu nadefinovanú? (deklarovaná tam pravdepodobne je, pretože kompilátor pozná jej parametre a návratovú hodnotu, ale keďže ju linker nevidí, definícia tam asi chýba)
|
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 14.11.2014 21:37 | |
|
No mám ju tam. Ale ako som písal, som totálny začiatočník v C++ a ak sa niečo dá, tak to robím tak ako v Jave. Tú funkciu mám takto (dosť amatérsky ): Kód: #include <string>
std::string vypis2x(std::string slovo){ return (slovo + " " + slovo); }
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 23.03.08 Prihlásený: 10.01.24 Príspevky: 723 Témy: 110 Bydlisko: Liptovský M... | Napísal mork4: 14.11.2014 21:59 | |
|
prečo posielaš ako argument funkcie napis2x v maine premennu meno namiesto slovo ?
|
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 14.11.2014 22:02 | |
|
Hop preklep.. najprv som to robil s menom // Spojený príspevok Pia 14.11.14 23:09Vyriešené. Funkciu som mal inak pomenovanú a inak deklarovanú. -_- Môžte to zmazať všetko.
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 Bydlisko: ZV/BA | Napísal matwej: 15.11.2014 12:19 | |
|
just a hint: na zaciatku za includmi si daj riadok using namespace std; a nebudes musiet pisat std::string, ale len string uz,
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 15.11.2014 13:31 | |
|
Matwej ten riadok tam očividne má, ale asi nevie, na čo je, keď to stále píše
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 15.11.2014 13:54 | |
|
Najprv som to tak písal že string ale potom ako som hľadal na nete, všade všetci každému radili aby písal std::string tak som to písal aj ja. Pre istotu. A ešte tu mám jeden problém, ktorý je už naozaj problémom. Mám funkciu CharToInt(char), ktorá robí nasledovné: Vracia mi čísla tak, že zadám CharToInt('A') a vráti mi 0. B vráti 1, C vráti 2 až po J vráti 9. Funkcia normálne funguje, mám ju vyskúšanú (robená cez switch). Ako spravím novú funkciu s použitím tejto, aby som zadával napríklad BAC a vrátilo by mi číslo 102? Neporadil by niekto? Prípadne ako ju potom mám zavolať v maine? Fakt by ste mi zachránili krk.
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 15.11.2014 13:56 | |
|
Poznáš cyklus? Vieš že string môžeš prejsť v cykle po znakoch? Asi nevieš, lebo inak by si sa nepýtal Btw. Std:: je dobre písať len vo väčších projektoch. Kým to sam nepotrebuješ, tak to písať nemusíš, stačí vedieť, čo to je a na co to je. Tak si to pozri. A ešte si pozri jednu magickú skratku: ASCII
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 15.11.2014 14:01 | |
|
Poznám cyklus preboha Tak som to skúšal, už som to skúšal aj cez pole znakov ... ono to nie je problém napísať, skôr je problém zavolať tú funkciu. Vypisuje mi niečo v zmysle, že v maine požaduje pointer-to function type či niečo také. :/ // Spojený príspevok Sob 15.11.14 15:26Mám to takto nejako.
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 Bydlisko: 00100100 | Napísal reDo: 15.11.2014 16:34 | |
|
Naco robit nieco co nemusis Kód: #include <iostream> #include <sstream>
using namespace std;
int StringToInt(string s) { int n; istringstream is(s); is >> n; return n; }
int main() { int x = StringToInt("123"); cout << x << endl; return 0; }
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 15.11.2014 16:40 | |
|
Len ja potrebujem aby som namiesto toho "123" zadal BCD a vyhodilo mi 123.
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 15.11.2014 18:25 | |
|
Posli cely projekt, ty tam máš určite len nejakú sprostosť.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 08.03.09 Prihlásený: 06.10.20 Príspevky: 1116 Témy: 88 Bydlisko: 00100100 | Napísal reDo: 15.11.2014 19:54 | |
|
Nemas niekde s definovane ako funkciu alebo nieco take?
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 15.11.2014 20:03 | |
|
Ok. Vyriešené. Funkcie som aj s mainom nechal v jednom súbore a už to ide ako má.
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 15.11.2014 20:17 | |
|
Len tak pre zaujímavosť, v čom to píšeš? A tiež by ma dosť zaujímalo, ako máš implementovanú funkciu charToInt?
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
BX Citácia: 1>C:\Users\Desktop\Documents\Visual Studio 2013\Projects\Pokus\Debug\Pokus.exe Ja by som tipol VS
_________________ C#, PHP, ... |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 15.11.2014 22:06 | |
|
Ha, to som si nevšimol Ale myslel som si a príde mi divné, že VS hodí takúto chybu... Keď sú všetky súbory v projekte, tak by to malo zlinkovať v pohode. Alebo robí drahoty kvôli tým precompiled headers, ktoré asi autor nepoužíva... Neviem.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 15.09.09 Prihlásený: 23.03.24 Príspevky: 398 Témy: 102 Bydlisko: Žilina | Napísal autor témy matt1024: 15.11.2014 22:13 | |
|
Začal som to všetko odznovu robiť a už mi to celé ide. Fakt neviem kde mohla byť chyba.
_________________ CPU: AMD Ryzen 5 2600 Cooler: GELID Solutions Phantom MB: AsRock B450 Pro4 RAM: HyperX 2x8 GB DDR4 2933 MHz CL17 Fury Black Series GPU: AMD SAPPHIRE Pulse RX580 8GB SSD: Kingston SSD A2000 1000GB HDD: WD Green 2TB PSU: Corsair VS450
Notebook: Nejaký Dell z roboty |
|
| Stránka: 1 z 1
| [ Príspevkov: 19 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| String ako návratová hodnota funkcie v C++ v Assembler, C, C++, Pascal, Java | 1 | 980 | 06.04.2008 23:11 Ivan11114 | | Vypísanie znakov v C v Assembler, C, C++, Pascal, Java | 4 | 469 | 18.04.2012 20:48 Fico | | c++ praca so string v Assembler, C, C++, Pascal, Java | 2 | 387 | 16.11.2014 13:17 mork4 | | C++ string to float v Assembler, C, C++, Pascal, Java | 11 | 1044 | 27.08.2010 12:46 Progy | | string v C = segmentation fault v Assembler, C, C++, Pascal, Java | 1 | 291 | 05.11.2011 12:01 Fico | | C# - string[x] to int v Technológia .NET | 3 | 651 | 24.03.2015 0:11 walther | | [C# - Help] Načítanie + vypísanie so súboru text do textbox v Assembler, C, C++, Pascal, Java | 8 | 860 | 14.11.2013 15:57 erik518 | | C# - Formulovanie matematickych operacii pomocou string v Assembler, C, C++, Pascal, Java | 0 | 348 | 26.09.2015 20:59 nico | | C# - Formulovanie matematickych operacii pomocou string v Assembler, C, C++, Pascal, Java | 2 | 304 | 13.06.2014 16:23 nico | | C++ vyvolanie funkcie v Assembler, C, C++, Pascal, Java | 0 | 398 | 15.04.2020 22:32 michaleres | | C++ polia a funkcie problém v Assembler, C, C++, Pascal, Java | 1 | 566 | 12.08.2012 23:18 nBXXL | | C (FILE ako parameter funkcie) v Assembler, C, C++, Pascal, Java | 1 | 630 | 29.10.2009 11:16 benji0o | | C++ a Dynamické pretypovanie funkcie z DLLky... v Assembler, C, C++, Pascal, Java | 4 | 759 | 07.08.2009 22:15 marian_sk | | [C]funkcie, nacitanie a porovnanie zo suboru v Assembler, C, C++, Pascal, Java | 6 | 1299 | 31.03.2015 17:47 dany2281995 | | parameter funkcie v C++/CLR + IDS camera v Technológia .NET | 0 | 1618 | 04.04.2010 18:41 m@-nX | | Funkcie s premenlivým počtom parametrov v jazyku C v Assembler, C, C++, Pascal, Java | 2 | 511 | 11.05.2013 21:39 faraon |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|