Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
PC fara wifi, conectare smart mon...

Renovare garsoniera 40 m.p. - ins...

Amorsa

Catel gasit pe strada
 Arhiva tar - descarcare nesigura ...

Racord flexibil gaz in loc de apa

Microsoft Office versiune optima

Dezmenbrare teren - cedare drum l...
 Zilele cataloagelor Americane

Poate Rh-ul negativ afecta o viit...

Solutie Backup pentru Server Linux

Laptop CS 2
 AirGPU (cloud gaming)

KAZA Univisa

Reciclare hard disk-uri defecte v...

Vacanta 7-10 zile auto
 

Citire fisiere C++

- - - - -
  • Please log in to reply
19 replies to this topic

#1
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019
Buna ! Am nevoie de ajutor si as fi recunoscatoare daca m ati ajuta .

Daca am un fisier "agenda.txt" in care citesc un nume (ex: "Maria" ) si in fisierul "nume.data" citesc o data (ex:19.04) , cum fac ca valoarea "nume" (din fisierul "nume.data" ) sa fie inlocuita cu valoarea citita in variabila "nume" ?

Adica cum as putea sa denumesc fisierul nostru "nume.data" (in care voi citi o data) in numele introdus de la tastatura (ex: "Maria.data") si va trebuie sa fac un fisier "nume.zodie" care va afisa zodia . Si vreau ca numele sa fie schimbat cu valoarea citita de la tastatura atat in fisierul "nume.data" , cat si in "nume.zodie".
(ex:"Maria.data" , "Maria.zodie")

Ma puteti ajuta ?

Sper ca m am facut inteleasa :
-adaug nume in fisierul "agenda.txt"
-citesc o data in fisierul "nume.data" , "nume" va fi inlocuit cu valoarea citita in variabila nume ( ex: fisierul se va numi "Maria.data" , "Maria" fiind un nume citit in variabila nume)

Am cautat pe online si nu am gasit ( stiu ca trebuie sa fie surse , dar sunt gasesc) si de aceea daca ma puteti ajuta cu niste surse de unde as putea prelua informatii sau poate doar sa mi spuneti cum as putea face asta ?

Multumesc !

#2
maccip

maccip

    45 ani

  • Grup: Senior Members
  • Posts: 33,178
  • Înscris: 06.01.2007
Pai regula aici e ca sa incepi tu cu codul tau.

#3
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019
Am facut codul in main , insa nu stiu cum sa ii adaug fisierele si m am gandit ca nu ar trebui sa postez codul care iti zice in ce zodie esti nascut pt ca e foarte lung , are multe if uri.

#4
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019
Aici ce codul main -> https://pastebin.com/afiAmFMV

#5
karax

karax

    Guru Member

  • Grup: Senior Members
  • Posts: 21,839
  • Înscris: 14.10.2017
cate if-uri...n-ai putea inlocui cu un loop if-urile alea?

avand in vedere ca datele sunt consecutive....

#6
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,226
  • Înscris: 08.10.2015
Am impresia ca initiatoarea este incepatoatre, poate la liceu si e la inceput, asta explica carnatul de if-uri din cod. Altfel rezolva rapid cu un case si un tablou unidimensional (vector, array). Asta e o solutie rapida pentru a identifica zodia. Cititul / scrisul (d)in fisier e simplu, daca stie sa faca citirea stie sau isi da seama si cum se face scrierea. Iar operatia de a redenumi un fisier (a salva un fisier cu alt nume) e aceiasi ca si in sistemul de operare. Totusi in acel cod nu am vazut operatii cu fisiere, concluzionez ca nu stie sa deschida un fisier pentru a citi din el.

LE: De fapt case nu cred ca functioneaza in cazul de fata.

Edited by MembruAnonim, 08 October 2019 - 23:17.


#7
karax

karax

    Guru Member

  • Grup: Senior Members
  • Posts: 21,839
  • Înscris: 14.10.2017
eu as fi facut cu ceva gen while sau for ....cu cat mergi de la luna 1 >> luna 12 cu atat deplasezi zodia din o lista si o afisezi ...astfel as fi creat 2 liste , una cu lunile si una cu zodiile ..

#8
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019

 MembruAnonim, on 08 octombrie 2019 - 23:14, said:

Am impresia ca initiatoarea este incepatoatre, poate la liceu si e la inceput, asta explica carnatul de if-uri din cod. Altfel rezolva rapid cu un case si un tablou unidimensional (vector, array). Asta e o solutie rapida pentru a identifica zodia. Cititul / scrisul (d)in fisier e simplu, daca stie sa faca citirea stie sau isi da seama si cum se face scrierea. Iar operatia de a redenumi un fisier (a salva un fisier cu alt nume) e aceiasi ca si in sistemul de operare. Totusi in acel cod nu am vazut operatii cu fisiere, concluzionez ca nu stie sa deschida un fisier pentru a citi din el.

LE: De fapt case nu cred ca functioneaza in cazul de fata.

Buna !De cateva ore tot caut online si nu reusesc . In primul rand nu sunt sigura daca toate aceste fisiere trebuie citite din main sau persoana trebuie sa intoduca date in casute diferite (ex: cand va rula codul ii va aparea o casuta in care isi va introduce numele , aceea e "agenda.txt" apoi va iesi si va intra in fisierul "nume.zodia" si aici voi citi zodia si abia in ultima casuta ii voi afisa zodia si anume in "nume.zodie" ), dar eu m am gandit ca sa scriu tot codul in main si cand rulez codul persoana va trebui sa introduca toate datele de o data adica sa nu se mai plimbe prin alte casute (ex citim Nume:Maria , citim Data:24.04 si afisam:Taur in aceeasi casuta) , dar nu mi dau seama cum sa fac asta , adica trebuie sa fac 3 fisiere din care citesc numele , aici pur si simplu citesc numele si inchid fisierul , in fisierul al doilea citesc data si aici am probleme pt ca nu pot sa citesc data sub forma ziua punct luna si in ultimul fisier pun toate if urilie si afisez zodia . Si intrebarile mele sunt : cum pot sa citesc (int) ziua>>(char)punct>>(int)luna ? Deschid toate fisierele si le inchid la final sau direct dupa ce am citit le inchid deoarece deja am valoarea stocata in variabila ? Am incerca sa fac char name[100]  cin.getline(name,100) , insa la data nu pot pune (float , 1) ca m am gandit sa fac un vector float [1] in care citesc o data ex 11.24 si dupa inmultesc cu 100 si imparc ca sa aflu ziua si luna , dar nu pot ... si am mai incercat si alte modaliatati ... Oare ma poate ajuta cineva cu raspunsurile la intrebari si sa mi de a niste surse de unde sa imi dau seama cum sa fac ? Multumesc !

#9
maccip

maccip

    45 ani

  • Grup: Senior Members
  • Posts: 33,178
  • Înscris: 06.01.2007
Off... m-ai cam pus in dificultate cu zodiile astea ca te ajutam eu. Sincer mi-e lene sa ma uit pe net sa vad care-i treaba cu zodiile.
Altfel programul e simplu doar ca nu-mi dau seama ezxact de formatul de date din fisier.
Daca nu te ajuta nimeni pana maine, te ajut eu. Dar imi trebuie fisierele din care vrei tu sa citesti numele si data nasterii, inteleg ca acolo e beleaua.
Si ma uit eu pe net sa vad care-i treaba cu zodiacul.

#10
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019

 maccip, on 09 octombrie 2019 - 16:47, said:

Dar imi trebuie fisierele din care vrei tu sa citesti numele si data nasterii, inteleg ca acolo e beleaua.
Si ma uit eu pe net sa vad care-i treaba cu zodiacul.
In fisierul "Catalog.txt" adaug un nume
Data nasterii sub forma zz/ll in fisierul "(nume).data"
Memoram zodia in fisierul "(nume).zodia" si se va crea un fisier (ex cu numele "Maria.zodia" care va contine "Rac")
Nu stiu dc nu reusesc ... maine seara trebuie sa l trimit ... si incerc de ore bune . Multumesc mult ! :)

#11
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,225
  • Înscris: 24.02.2007
In codul postat citesti de la tastatura numele si luna.

N-am inteles de unde-s toate fisierele astea si care-i rolul lor. Daca-i o cerinta explicita ar ajuta sa o scrii aici.

#12
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019

 dani.user, on 09 octombrie 2019 - 17:23, said:

In codul postat citesti de la tastatura numele si luna.

N-am inteles de unde-s toate fisierele astea si care-i rolul lor. Daca-i o cerinta explicita ar ajuta sa o scrii aici.
Cerinta este :
- adaugati nume in fisierul "agenda.txt"
- memorati data nasterii sub forma zz/ll in fisierul "(nume).data" , "(nume)" va fi inlocuit cu valoarea citita in variabila nume , in expemplul nostru se va numi "Maria.data" si va contine 23/04
- memorati zodia in fisierul (nume).zodie" , in exemplul nostru se va crea un fisier cu numele "Maria.zodie" care va contine "TAUR"
Rulati programul de minimum 3 ori , cu 3 seturi de date diferite , astfel ca sa obtineti in fisierul "agenda.txt" minim 3 nume si ,evident, minim 3 perechi de fisiere ".data" si ".zodia"

#13
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,226
  • Înscris: 08.10.2015
Hint: Zodiile le tii intr-un tablou unidimensional, legatura intre data si zodie va fi de forma zodie = zodiacEuopean[luna - 3] daca ziua din luna e sub 20 si cand se termina zodia sau zodie = zodiaEuropean[luna - 2] daca ziua din luna e dupa 20 si cand incepe nurmatoare zodie.
Hint; Fisierele noi vor fi fileZodie = prenumePersoana + ".zodie" si fileData = prenumePersoana + ".data".

zodie =  variabila care contine numele zodiei extrasa din array-ul de mai jos, personal nu m-as complica cu inca o variabila dar pentru invatat e okay, in timp vei sti cand sa folosesti o variabila si cand nu;
zodiacEuropean = tablou unidimensional care contine cele 12 zodii din zodiacul mentionat in ordinea lor incepand cu berbecu'.
luna = variabila de tip intreg, valoare ciita de la tastatura si care reprezinta numarul lunii din an cu ianuarie fiind prima luna deci daca luna = 1 => vorbim de luna ianuarie;
prenumePersoana = variabila care contine prenumele persoanei si a carei valoare este introdusa de la tastatura.

Cat de lucru cu fisiere:
www.cplusplus.com/doc/tutorial/files/

E fix primul link la o cautare pe goagle. A durat 5 secunde cat sa scriu c++ open file for read and write ca si termen de cautare.

PS: Nu am mai scris cod in C++ de aproape 20 de ani de asta nu scriu aici cod. Cine este de meserie poate posta un snippet sau ma poate corecta deoarece am impresia ca am scris ceva balarii in prima parte a postului.

Edited by MembruAnonim, 09 October 2019 - 22:17.


#14
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019

 MembruAnonim, on 09 octombrie 2019 - 22:12, said:

Hint: Zodiile le tii intr-un tablou unidimensional, legatura intre data si zodie va fi de forma zodie = zodiacEuopean[luna - 3] daca ziua din luna e sub 20 si cand se termina zodia sau zodie = zodiaEuropean[luna - 2] daca ziua din luna e dupa 20 si cand incepe nurmatoare zodie.
Hint; Fisierele noi vor fi fileZodie = prenumePersoana + ".zodie" si fileData = prenumePersoana + ".data".

zodie =  variabila care contine numele zodiei extrasa din array-ul de mai jos, personal nu m-as complica cu inca o variabila dar pentru invatat e okay, in timp vei sti cand sa folosesti o variabila si cand nu;
zodiacEuropean = tablou unidimensional care contine cele 12 zodii din zodiacul mentionat in ordinea lor incepand cu berbecu'.
luna = variabila de tip intreg, valoare ciita de la tastatura si care reprezinta numarul lunii din an cu ianuarie fiind prima luna deci daca luna = 1 => vorbim de luna ianuarie;
prenumePersoana = variabila care contine prenumele persoanei si a carei valoare este introdusa de la tastatura.

Cat de lucru cu fisiere:
www.cplusplus.com/doc/tutorial/files/

E fix primul link la o cautare pe goagle. A durat 5 secunde cat sa scriu c++ open file for read and write ca si termen de cautare.

PS: N
Inteleg caci cu vector este mult mai eficient insa eu mai am un char de citit punctul si mi se pare mult mai usor de inteles codul , am cautat working with filesc C++ si mi a dat aceleasi rezultate , pana acum am facut asa https://pastebin.com/7V0uzKNw si ca in primul fisier sa citesc numele , in al doilea data si in ista voi pune toate if urile si in al treila doar afisez variabila zodia , insa nu prea reusesc cu cititul datei sub forma cin>>ziua>>punct>>luna si cu facutul fisierelor :))

#15
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,226
  • Înscris: 08.10.2015
┌(ghost)─(Timberwolf)─(5.3.5-arch1-1-ARCH)
└─(c++)─(3 files, 28KB)─ $ g++ -o testDataCititaDeLaTastatura testDataCititaDeLaTastatura.cpp
┌(ghost)─(Timberwolf)─(5.3.5-arch1-1-ARCH)
└─(c++)─(3 files, 28KB)─ $ ./testDataCititaDeLaTastatura
Introdu data (dd/ll): 01/12
Ziua este: 01 iar luna este: 12
┌(ghost)─(Timberwolf)─(5.3.5-arch1-1-ARCH)
└─(c++)─(3 files, 28KB)─ $

Hint: De la tastatura citesc un sir de caractere pe care mai apoi il prelucrez dupa nevoie.

#16
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019
Multumesc ! Dar asta cred ca ma pus mai in ceata
char name[100];
    ofstream myName;
    myName.open("Catalog.txt");
    cout<<"Va rugam sa introduceti un nume: ";
    cin.getline(name,100);
asa citesc numele si cand vreau sa citesc o data fac simplu alt fisier in care citesc ziua>>punct>>data si nu inteleg dc nu imi citeste
am incercat cu
ifstream data(nume+".data") - eroare si am pus data("nume.data") doar sa vad daca functioneaza si nu merge
while(data>>ziua>>punct>>luna){
//aici sunt if urile
}
am mai ncercat si
ifstream data;
data.open("nume.data")
data>>ziua>>punct>>luna si nu merge

#17
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019
Sunt in pana de timp daca ma poti ajuta

#18
Annna3

Annna3

    New Member

  • Grup: Candidate Members
  • Posts: 14
  • Înscris: 08.10.2019
Am reusit sa intoduc datele in fisiere https://pastebin.com/uHGkkg3n si acum incer sa schimb numele fisierelor  -> nume.data si nume.zodia . O idee ? Am incercat cu file ...name +".data" ...

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate