Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok NapísalOffline : 09.11.2014 19:28

Zdravim, potreboval by som nacitat cisla oddelene medzerami na tom istom riadku do pola, viete mi poradit ?
ocakavany vstup je:
Kód:
2 5 18 1 63 9 11 ...

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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 09.11.2014 19:42

Vieme ti poradiť. Napíš ale s čím presne máš problém. Nevieš načitať číslo? Nevieš urobiť pole?







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok Napísal autor témyOffline : 09.11.2014 19:45

neviem to nacitat, robil som nieco v zmysle

Kód:
v=1;
i=1;

while (v==1)
{
  v=scanf("%d",&pole[i]);
  i++;
}


ale to je blbost







_________________
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
Offline

Užívateľ
Užívateľ
[C] Citanie integeru v cykle

Registrovaný: 27.12.08
Prihlásený: 13.12.22
Príspevky: 1874
Témy: 96
Bydlisko: Bratislava,...
Príspevok NapísalOffline : 09.11.2014 22:18

preco to je blbost? zakladna myslienka je dobra...
akurat ak to ma byt z jedneho riadka iba tak by som to spravil tak, ze by som cez gets nacital ten riadok a potom by som cital z toho riadka cez sscanf.., takto si aj mozem alokovat pole presnej velkosti (kedze viem trivialne spocitat medzery v string-u)







_________________
~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)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok Napísal autor témyOffline : 10.11.2014 15:59

mozes mi prosim ta trochu blizsie popisat jak to dosiahnem tymi funkciami ? teda konkretne sscanf .. neviem s nim citat po jednom
Kód:
gets(c);
    while (c[i]!=EOF)
    {
        if (c[i]==' ')
            medzera++;
        i++;
    }
    medzera-=2;

    int palicky[medzera+1];

    for (i=0;i<medzera+1;i++)
        sscanf(c,"%d ",&palicky[i]);

mi nacita vzdy iba prve cislo

//EDIT: prave som zistil ze ani neviem ako zadat EOF pri pisani vstupu







_________________
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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 10.11.2014 16:38

expoox píše:
EDIT: prave som zistil ze ani neviem ako zadat EOF pri pisani vstupu

Toto je tvoj najväčší problém. Ten tvoj kód so scanf je správne a nenechaj si natárať nejaké sscanf. Zbytočne tam niečo také pchať, keď to robí úplne to isté, len zložitejšie.

Jednoduchá rada: EOF v príkazovom riadku je ctrl+Z, alebo F6, alebo CTRL+D v unixe.
Ďalšie možnosti: posielaj vstup zo súboru, alebo si definuj, že napr pri nule bude koniec vstupu. Čiže s EOF nebude problém, pretože pri postupnosti 15 43 2 4 0, ti výjde pole s číslami 15,43,2,4. Hotovo.
Zo súboru sa to ale robí cez príkazový riadok (vo Windows, alebo cez terminál v unixoch). Radšej použi to ukončovacie číslo.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok Napísal autor témyOffline : 10.11.2014 16:46

plati ctrl+z aj na v unixe?
ide o to ze vstup nezadavam...mam ho presne dany a neviem si ho presmerovat cez subor ..







_________________
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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 10.11.2014 16:47

Upravil som svoj prspevok aj pre unix.
A cez súbor si ho presmerovať vieš. Vytvoríš klasický text file (s názvom napr mojvstup), napíšeš do neho vstup a potom program spustíš ako
Kód:
./a.out < mojvstup







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok Napísal autor témyOffline : 10.11.2014 16:57

nie ze by som tevedel zrobit koli tom ze neviem ako ale main.c sa nekompiluje ani u mna na pc, ide to na server kde si to zada vlastny vstup ktory neviem ovlpyvnit







_________________
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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 10.11.2014 17:10

Joj ale to je ti jedno, veď si to môžeš testovať u seba, nie? :D
A ak to robí na vzdialenom servri, tak to robí zo súborov. Preto odporúčam testovať to s tým presmerovaním zo súboru.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok Napísal autor témyOffline : 10.11.2014 17:29

pravda :D vdaka za pomoc







_________________
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
Offline

Užívateľ
Užívateľ
[C] Citanie integeru v cykle

Registrovaný: 27.12.08
Prihlásený: 13.12.22
Príspevky: 1874
Témy: 96
Bydlisko: Bratislava,...
Príspevok NapísalOffline : 11.11.2014 22:51

BX: ako so scanf zistis ci si uz dosiel na koniec RIADKA a nie SUBORU? na to potrebujes gets a sscanf, ja som mu povedal ze to ma pouzit iba ak potrebuje taketo daco..







_________________
~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)
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 11.11.2014 23:09

Pokiaľ ide o detekciu entera pri zadávaní vstupu, uznávam, že je to tak jednoduchšie. Ale samozrejme dá sa využiť to, že scanf sa vracia práve pri stlačení entera a teda na "konci riadka" si môžem robiť čo chcem.

Kód:
    int a, i = 0;
    while( scanf("%d", &a) == 1 )
    {
        printf( "riadok #%d, read %d\n", i, a );

        if( getchar() == '\n' )
            i++;
    }







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.06.12
Prihlásený: 11.12.17
Príspevky: 132
Témy: 20
Príspevok Napísal autor témyOffline : 15.11.2014 14:03

teraz ste ma doplietli, asi som sa nevyjadril presne vstup moze byt aj viac riadkovy a je ukonceny prave EOF... takze scanf alebo sscanf?







_________________
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
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 15.11.2014 18:28

Takže scanf. Sscanf je to isté, len tomu dávaš ako parameter reťazec, z ktorého má čítať. Za to scanf číta zo štandardného vstupu stdin. Takže ti stačí scanf, lebo čítaš zo stdin a viac ti netreba.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Odpovedať na tému [ Príspevkov: 15 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. [C] strlen porovnanie pointeru a integeru

v Assembler, C, C++, Pascal, Java

5

371

12.10.2014 0:13

dany2281995 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ Čítanie ŠPZ

v Assembler, C, C++, Pascal, Java

4

592

28.03.2017 19:08

void Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. c++ citanie zo suboru

v Assembler, C, C++, Pascal, Java

2

1986

24.09.2012 20:08

S1RuP Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Efektívne čítanie príkazov - C

v Assembler, C, C++, Pascal, Java

13

711

28.12.2013 16:06

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ Čitanie znakov/čísel

v Assembler, C, C++, Pascal, Java

6

565

09.05.2014 12:04

Lukys12345 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [C++] ZENIT - čítanie vstup.in

v Assembler, C, C++, Pascal, Java

18

1009

13.11.2011 15:31

nBXXL Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C formatované čítanie zo súboru

v Assembler, C, C++, Pascal, Java

13

849

06.05.2012 10:46

aktyX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Štruktúra, čítanie zo súboru [C]

v Assembler, C, C++, Pascal, Java

2

434

18.04.2015 9:26

ado130 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# čítanie jedného riadka z textového súboru

v Assembler, C, C++, Pascal, Java

4

516

27.06.2014 14:08

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. time() v cykle

v PHP, ASP

16

440

08.03.2016 10:26

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Premenna v cykle php

v PHP, ASP

18

919

12.08.2009 21:43

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mám sa učiť C ++/objective C/ C#?

v Assembler, C, C++, Pascal, Java

5

729

08.07.2014 20:40

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Periferne citanie

v Voľný čas a hobby

7

752

10.09.2012 10:19

dixi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. citanie kodu

v PHP, ASP

2

431

14.01.2011 20:42

slebo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. citanie textu odzadu

v PHP, ASP

2

809

14.06.2009 23:13

pa3ck Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Tablet na citanie

v Mobilné zariadenia

0

200

16.09.2014 19:12

florq Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra