| | |
| Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Autor | Správa |
---|
Registrovaný: 19.06.12 Prihlásený: 11.12.17 Príspevky: 132 Témy: 20 | Napísal expoox: 09.01.2015 22:45 | |
|
Zdravim, existuje funkcia, ktora precita zo stdin znak(skupinu znakov) a vrati "kurzor" na zaciatok ?
dakujem
_________________ Lenovo IdeaPad G580 *Intel Core i3-2310M 2.10GHz * 4GB RAM * Nvidia GeForce 610M 1GB * 500GB HDD SATA * Windows 10 64-bit || Ubuntu 14.04 |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 09.01.2015 23:04 | |
|
Nie. Môžeš vyskúšať zobraziť znak "\r", to ale funguje len v niektorých termináloch.
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 09.01.2015 23:13 | |
|
ak chces viackrat citat ten isty riadok, tak si to nacitaj do string-u (fgets) a potom citaj z toho string-u kolkokrat chces (sscanf) znak '\r' je skor uzitocny pri vypisovani na prepisanie posledneho riadka a vo vacsine linux-ovych terminalov to funguje, na windows-e som neskusal...
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 19.06.12 Prihlásený: 11.12.17 Príspevky: 132 Témy: 20 | Napísal autor témy expoox: 09.01.2015 23:44 | |
|
nBXXL: stringu som sa chcel vyhnut pretoze zadanie je nieco v zmysle ze na vstupe je n*n prvkova matica (n<=10 000) a viem ze jeden zo vstupov bude obsahovat \n na zaciatku a to by som mal spravne vyhodnotit ako zly vstup, preto som dufal ze precitam prvy znak a ak nieje LF tak to zacnem citat znovu... chrono: neviem ci som to \r dobre pochopil, napisal som to takto a nefunguje mi to na Xubuntu : Kód: scanf("%c",&c); printf("\r"); scanf("%d",&matica[0]);
_________________ Lenovo IdeaPad G580 *Intel Core i3-2310M 2.10GHz * 4GB RAM * Nvidia GeForce 610M 1GB * 500GB HDD SATA * Windows 10 64-bit || Ubuntu 14.04 |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 10.01.2015 9:52 | |
|
\r ti pri čítaní nepomôže. Prečo by si to chcel čítať znovu? Veď prečítaš prvý znak a ak to nebude LF, tak budeš jednoducho pokračovať. Ak to bude LF, skončíš a vyhlásiš zlý vstup.
btw. na prečítanie znaku máš lepšiu funkciu - getchar()
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 19.06.12 Prihlásený: 11.12.17 Príspevky: 132 Témy: 20 | Napísal autor témy expoox: 10.01.2015 10:06 | |
|
ano, lenze ak ten prvy znak nebude LF, tak ten znak musim pouzit ako integer ktory nemusi byt <10, teda by som musel po znakoch hladat medzeru a vsetko medzi tym spracovat do cisla priklad vstupu: Kód: \n 512 2 3 6 5 48
alebo Kód: 512 2 3 6 5 48
_________________ Lenovo IdeaPad G580 *Intel Core i3-2310M 2.10GHz * 4GB RAM * Nvidia GeForce 610M 1GB * 500GB HDD SATA * Windows 10 64-bit || Ubuntu 14.04 |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 10.01.2015 10:21 | |
|
Noa? A nevieš načítať číslo po znakoch? Píšem z hlavy: Kód: int num = 0; while(1) { char c = getchar(); //nacitam znak if( c == '\n' ) return "zly vstup"; //ak je to \n, tak nieco urobim, napr vyhlasim zly vstup, pripadne sa posuniem na novy riadok atd.
if( c == ' ' ) //ak je to medzera, cislo si ulozim/vypisem a zresetujem { print num; num = 0; continue; }
//nie je to ani \n ani medzera, takze je to cifra, pripocitam ju num = (num*10) + (c - '0'); }
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 19.06.12 Prihlásený: 11.12.17 Príspevky: 132 Témy: 20 | Napísal autor témy expoox: 10.01.2015 10:26 | |
|
jasne ze viem, len som chcel vediet ci sa to neda citat znovu aby to bolo jednoduchsie, nic viac
_________________ Lenovo IdeaPad G580 *Intel Core i3-2310M 2.10GHz * 4GB RAM * Nvidia GeForce 610M 1GB * 500GB HDD SATA * Windows 10 64-bit || Ubuntu 14.04 |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 10.01.2015 10:28 | |
|
V podstate dá, ale nikdy to nerob, kým skutočne nemusíš. V tomto prípade nemusíš. Dalo by sa to napríklad funkciou fseek na stdin. Ale nebude to jednoduchšie.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 19.06.12 Prihlásený: 11.12.17 Príspevky: 132 Témy: 20 | Napísal autor témy expoox: 11.01.2015 17:54 | |
|
takze predsa existuje funkcia, ktora robi presne co potrebujem ... ungetc() toto uplne splna moje poziadavky: Kód: c=getchar(); if (c=='\n') printf("LF\n"); ungetc(c,stdin); scanf("%d",&k);
_________________ Lenovo IdeaPad G580 *Intel Core i3-2310M 2.10GHz * 4GB RAM * Nvidia GeForce 610M 1GB * 500GB HDD SATA * Windows 10 64-bit || Ubuntu 14.04 |
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 11.01.2015 20:48 | |
|
dobre vediet.. ungetc som nepoznal anyway, ungetc robi to co potrebujes ale nie to, co si pozadoval v zadani (vratit kurzor naspat na zaciatok riadku)..., s tym string-om som to myslel takto: Kód: char s[128] buffer; gets(buffer); if (buffer[0] == '\n') printf("LF\n"); sscanf(buffer, "%d", &k); // dalsie riadky uz mozes citat normalne zo scanf
sscanf sa pouziva rovnako ako scanf, akurat necita zo standardneho vstupu ale zo string-u ktory mu zadas ako prvy parameter.., a pomocou sscanf mozes z jedneho string-u citat kolkokrat chces (teda doslova vratit kurzor na zaciatok riadku(stringu)..)
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 19.06.12 Prihlásený: 11.12.17 Príspevky: 132 Témy: 20 | Napísal autor témy expoox: 11.01.2015 20:55 | |
|
ano, mas pravdu ze to nevracia kurzor ale riesi to moj problem, ktory som nizsie popisal, ale to je jedno teraz
viem jak si to myslel tym stringom len tak som to nechcel robit preto lebo som nevedel aky dlhy bude vstup, mohlo tam byt 1500 3-cifernych cisel napr...
_________________ Lenovo IdeaPad G580 *Intel Core i3-2310M 2.10GHz * 4GB RAM * Nvidia GeForce 610M 1GB * 500GB HDD SATA * Windows 10 64-bit || Ubuntu 14.04 |
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 11.01.2015 21:01 | |
|
still ak su to len cisla oddelene medzerami tak sa to da poriesit cez strtok a itoa.... just sayin..
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
| Stránka: 1 z 1
| [ Príspevkov: 13 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| C++ konštantná funkcia triedy v Assembler, C, C++, Pascal, Java | 2 | 545 | 07.08.2010 14:17 Loko11 | | C jednoducha funkcia ktora nefunguje v Assembler, C, C++, Pascal, Java | 10 | 516 | 13.11.2016 19:21 BX | | c++ funkcia na rozdelenie čisla v Assembler, C, C++, Pascal, Java | 1 | 429 | 20.12.2011 18:53 Fico | | C++ Problém: funkcia vykonávaná po starom v Assembler, C, C++, Pascal, Java | 4 | 479 | 31.07.2009 16:46 petos | | funkcia pre vypis dvojrozmerneho pola v C v Assembler, C, C++, Pascal, Java | 9 | 1444 | 10.07.2011 12:47 v.tkac | | Mám sa učiť C ++/objective C/ C#? v Assembler, C, C++, Pascal, Java | 5 | 729 | 08.07.2014 20:40 XOLOO | | Hledá se programátor C/C++ pro vesmírné projekty (Praha) v Ponuka práce | 0 | 1122 | 10.05.2016 14:59 evolvsys | | rozdiel medzi Borland 3.1 C++ vs Net. C++ v Assembler, C, C++, Pascal, Java | 4 | 574 | 20.07.2010 12:54 walther | | Hladam hracov na C&C Generals Zero Hour v Počítačové hry | 10 | 1249 | 07.03.2007 19:22 Spirit | | K: PC Literaturu- C++/C#/java/python/ruby/RoR v Kúpim | 0 | 409 | 13.05.2014 18:16 expresado | | Naučte se C++ za 21 dní + C++Builder 6 v Assembler, C, C++, Pascal, Java | 18 | 2412 | 21.05.2010 21:08 Wpegb | | aky je rozdiel medzi C++ a Visual C++ ? v Assembler, C, C++, Pascal, Java | 8 | 1963 | 19.02.2011 22:46 vendo2 | | Čo mi treba na programovanie v C/C++ v Assembler, C, C++, Pascal, Java | 17 | 1146 | 25.09.2011 18:14 reDo | | funkcia v Assembler, C, C++, Pascal, Java | 1 | 635 | 10.02.2009 21:20 Fico | | Funkcia v PHP, ASP | 6 | 827 | 06.11.2007 15:45 Orwell | | funkcia v PHP, ASP | 2 | 336 | 25.03.2014 17:42 shaggy |
| 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
|
|