Anonymní profil Adela123 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Adela123 – Programujte.comAnonymní profil Adela123 – Programujte.com

 

Příspěvky odeslané z IP adresy 160.216.152.–

Adela123
C / C++ › parsování řádku
2. 2. 2020   #385391

#5 gna

Ze začátku děkuji za radu!

Ale ne, nezkopírovala jsem to. Jenže upravení na 2 čísla není řešení, co kdyby tam těch čísel bylo třeba 1000. Samozřejmě, že tam můžu dát tisíc čísel, ale to tam pak nemusím mít tu strukturu a musela bych ten program napsat úplně jinak a otrocky to psát nechci, když by stačil např. jeden cyklus.

Adela123
C / C++ › parsování řádku
2. 2. 2020   #385390

#4 KIIV
Moc děkuji za pomoc, vím,že to asi není ideální styl programování, ale pro mě je to přehlednější a jsem ještě na začátku, tak se snažím pracovat s tím co umím.

Adela123
C / C++ › parsování řádku
1. 2. 2020   #385381

#2 hlucheucho 

void Parsovani(char *cisla, int &cislo){
cislo=atoi(strtok(cisla,";"));
cisla=0;
}

Dělím to podle středníku, ale bohužel vždy to najde jen jedno číslo na řádku. Když to mám rozdělené, že každé číslo má svůj řádek je to v pořádku, ale já bych ty čísla potřebovala na jednom a to je s tímto kódem problém.

Adela123
C / C++ › parsování řádku
1. 2. 2020   #385379

   


#include "stdafx.h"
#include <string>

using namespace std;
char obsah[200];
char cisla[20];
struct TCislo{
int cislo;
};
struct TVety{
char vety[200];
};
void Parsovanivet( char *obsah,char *text){
strcpy(text, strtok(obsah, "."));
obsah=0;
text=0;
}
void VetyTXT(TVety Souhrn[],int &PocetVet){
char text[200];
int j=0;
FILE * soubor;
soubor=fopen("vety.txt","rt");
while(!feof(soubor)){
fgets(obsah,200,soubor); 
Parsovanivet(obsah,text);
strcpy(Souhrn[j].vety,obsah);
j++;
}
PocetVet=j;
}
void Parsovani(char *cisla, int &cislo){
cislo=atoi(strtok(cisla,";"));
cisla=0;
}
void CislaTXT(TCislo Prehled[],int &PocetCisel,int &cislo){
int i=0;
FILE * soubor1;
soubor1=fopen("cisla.txt","rt");
while(!feof(soubor1)){
fgets(cisla,20,soubor1);
Parsovani(cisla,cislo);
Prehled[i].cislo=cislo;
i++;
}
PocetCisel=i;
}
void Prehazeni(TCislo Prehled[],TVety Souhrn[],int PocetCisel, int PocetVet){
for (int i = 0; i<PocetCisel;i++ ){
for (int j = 0; j<PocetVet;j++ ){
if(Prehled[i].cislo==j)
printf("%s\n",Souhrn[j].vety);
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
TCislo Prehled[20];
TVety Souhrn[200];
int PocetCisel=0;
int cislo=0;
int PocetVet=0;
VetyTXT(Souhrn,PocetVet);
CislaTXT(Prehled,PocetCisel,cislo);
Prehazeni(Prehled,Souhrn,PocetCisel,PocetVet);
return 0;
}


Dobrý den, 

chtěla by se zeptat programuji v C++, ale nevím jak udělat to ,aby se mi rozparsoval v txt jeden řádek s čísly, protože teď to funguje jen tak, že každé číslo musím mít na jednom řádku. 

Popřípadě moc děkuji za rady, 

Adela

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý