Obsah fóra
PravidláRegistrovaťPrihlásenie




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

Užívateľ
Užívateľ
[C++] formatovanie vstupu zo suboru

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok NapísalOffline : 23.04.2013 12:30

Zdravim, chcel by som sa spytat ako sa da v C++ najefektivnejsie formatovat vstup. Mam totiz subor v ktorom su slova a potreboval by som jednotlivo poodelovat tieto slova a zapisat ich do pola.

V C sa to riesilo cez fscanf() kde som si priamo mohol naformatovat tento vstup, ale chcel by som vediet v C++ ako sa to da najlepsie riesit. Ci cez metodu inser, copy, find ... alebo je nejaky lepsi sposob?







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
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 : 23.04.2013 15:03

Ak ide len o slová, tak sa to dá cez funkciu getline - buď máš každé slovo v riadku, to je potom ľahlé, alebo ich mአv jednom riadku a funkcii zmeníš delimiter na medzeru (napr) Príp. tam máš nejaký text, takže zmeníš delimiter na medzeru a špeciálne poošetruješ oddelenie slov tam, kde sa láme riadok.
Tak pekne, ako fscanf, sa to podľa mňa v C++ nedá - môžem sa ale mýliť, ja som aj v C++ používal vždy fscanf, pretože je rýchlejší a pohodlnejší než streamy v C++.







_________________
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ľ
[C++] formatovanie vstupu zo suboru

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 23.04.2013 20:02

okay, skusim to. Ide len o slova , ale dve su v jednom riadku, takze skusim nastavit ten delimiter na medzeru.
Dost casto sa kombinuju v C++ kniznice z C, ale to asi nie je najlepsii napad stare kniznice pouzivat ..







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
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 : 23.04.2013 20:23

To je diskutabilné. Cčkovské funkcie (väčšina) boli do C++ zavedené a inkludujú sa tak, že napíšeš názov knižnice bez .h a pred to ešte c. Napr. v tomto prípade, ak dáš do programu #include <cstdio>; tak sa nedá povedať, že by si používal "starú Cčkovsku" knižnicu.







_________________
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ľ
[C++] formatovanie vstupu zo suboru

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 23.04.2013 23:05

aha tak v tom pripade ano, ja som myslel .h subory ..







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
Offline

Užívateľ
Užívateľ
[C++] formatovanie vstupu zo suboru

Registrovaný: 14.03.11
Prihlásený: 02.08.23
Príspevky: 814
Témy: 23
Bydlisko: Bratislava
Príspevok NapísalOffline : 25.04.2013 15:59

Kód:
#define   DELIM   (wstring)L" "   // delimiter
//...

wstring sInLine;   // nacitany riadok
//...

wstring sWord, sTail;
while ( stringSplit( sInLine, DELIM, & sWord, & sTail ) ) {
   sInLine = sTail;
   // sWord <- slovo -------------------------------------------
}
if ( sInLine.length() > 0 ) {
   // sInLine <- posledné slovo -------------------------------
}

///////////
bool stringSplit( wstring sStr, wstring sDel, wstring * s1st, wstring * s2nd ) {

   if ( sStr.empty() )
      return false;
   if ( sStr.find( sDel ) != wstring::npos ) {
      size_t i = sStr.find( sDel );
      *s1st = sStr.substr( 0, i );
      *s2nd = sStr.substr( i+sDel.length() );
      return true;
   } else {
      *s1st = sStr;
      *s2nd = L'\0';      return false;
   }
}


Ale v c++/cli je to lahšie.


Offline

Užívateľ
Užívateľ
[C++] formatovanie vstupu zo suboru

Registrovaný: 14.03.11
Prihlásený: 02.08.23
Príspevky: 814
Témy: 23
Bydlisko: Bratislava
Príspevok NapísalOffline : 25.04.2013 16:07

Kód:
   String ^ sCap = gcnew String( L" | môjProgram | testovanie na súbore | " );

   FileStream ^ fsIn = gcnew FileStream( L"./input.txt", FileMode::Open );
   if ( fsIn == nullptr ) {
      String ^ sMsg = L"Nenašiel som vstupný súbor.";
      #ifdef CONSOLE   
      #else
      MessageBox::Show( sMsg, sCap, MessageBoxButtons::OK, MessageBoxIcon::Error );
      #endif
      return;
   }
   Encoding^ w1250 = Encoding::GetEncoding( 1250 );
   StreamReader^ sr = gcnew StreamReader( fsIn, w1250 );

   String ^ sLine;
   for(;;) {
      sLine = sr->ReadLine();
      if ( sLine == nullptr ) break;      // EOF
      if ( sLine->Length == 0 ) {      // empty line
         continue;
      }
      //   ----------------------------------
      array < String ^ > ^ sWords;       // do tohoto bude separovať
      array < Char > ^ aSep = gcnew array<Char>{ ' ' };  // tu môžu byť rôzne separátory
      sWords = sLine->Split( aSep );     // <==

      int iWord = sWords->Length;       // počet slov
      //   ----------------------------------

   }



Offline

Užívateľ
Užívateľ
[C++] formatovanie vstupu zo suboru

Registrovaný: 20.11.09
Prihlásený: 02.11.14
Príspevky: 241
Témy: 58
Bydlisko: Myjava
Príspevok Napísal autor témyOffline : 27.04.2013 23:31

Uz som to vyriesil, cisto len cez funkciu
Kód:
 subor >> slovo_premenna

nacitavam dane slovo, kazde je v novom stringu.







_________________
"Digitálna technika pozostáva len z 0 a 1, ktoré sú v správny čas na správnom mieste." M. Valášek
Odpovedať na tému [ Príspevkov: 8 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. C, problem s osetrenim vstupu z klavesnice - char

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

5

523

05.12.2011 14:07

t-pack25 Zobrazenie posledných príspevkov

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

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

7

635

18.11.2010 15:07

masloslayer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C-Formátovanie Výstupu (diakritika)

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

8

781

30.03.2014 16:51

chrono 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. 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. zapisovanie do suboru v C#

v Technológia .NET

1

574

19.05.2013 21:41

walther 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] Výpis zo súboru do pola

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

2

440

05.11.2012 20:53

ado130 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. c++ načítavanie z textového súboru atď..

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

0

612

30.12.2011 17:03

head0r Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++ kombinatorika/zapis do txt suboru

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

2

1178

13.04.2011 22:46

blabla630 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vypocet priemeru v C zo suboru

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

10

1396

16.11.2009 10:11

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s vypisom zo suboru C

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

4

357

01.04.2012 12:47

gaspa10 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nacitanie obsahu suboru do pola v C

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

5

2137

28.04.2011 10:39

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [C]funkcie, nacitanie a porovnanie zo suboru

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

6

1299

31.03.2015 17:47

dany2281995 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. programovanie v C (nacitavanie matic zo suboru)

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

8

345

03.11.2013 18:06

Rioner 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