Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Boxa membrana tweeter infundata

ajutor

Whisky for Mac

Xiaomi 14 Gpay
 Izolare zid exterior de scandura

Dezinstalare drivere W11 23H3

Recomandare masina de spalat fiab...

BSOD din cauza Intel Audio DSP dr...
 De ce sunt oamenii nostalgici

Cum vand casa fara factura Hidroe...

Scor FICO minim

Tonometru compensat CAS?
 polita RCA ONLINE

Termostat frigider - verificare

Mai au PC-urile vreun viitor?

Centrala termica immergas
 

fstreams - read si write in acelasi timp

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

#1
Sess

Sess

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 20.01.2016
Salut,

Am urmatorul cod:
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <string>
using namespace std;
int main()
{
fstream f("test.txt", ios::in | ios::out | ios::app);
if (!f)
{
cout << "File won't open!\n\n";
system("pause");
return 1;
}
f << "Line 1\n";
f << "Line 2\n";
while (f)
{
string line;
getline(f, line);
cout << line<<endl;
}
system("pause");
f.close();
return 0;
}


Cand rulez codul de mai sus, imi scrie in fisier cateva linii de genu:

Quote

ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ

Daca folosesc fluxurile separat de citire si scriere, totul functioneaza corect.

Ce anume imi scapa la codul de sus?

Multumesc.

#2
Axel2015

Axel2015

    Member

  • Grup: Members
  • Posts: 716
  • Înscris: 10.02.2016
f << "Line 1\n";
f << "Line 2\n"
F << ''Line 3\n''

#3
Sess

Sess

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 20.01.2016

 Axel2015, on 03 decembrie 2016 - 11:29, said:

f << "Line 1\n";
f << "Line 2\n"
F << ''Line 3\n''

Nu inteleg.

#4
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Ce incerci sa rezolvi folosind read si write in acelasi timp?

#5
Sess

Sess

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 20.01.2016
Vreau sa folosesc acelasi flux de intrare si de iesire deoarece codul pare mai curat si mai usor de inteles. Pe de alta parte, daca C++ ofera posibilitatea asta, de ce nu?

#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Cod care face ce mai exact? Daca vrei doar sa recitesti ce scrii, exista stringstream ce face totul in memorie (nu mai freaca discul).

#7
Sess

Sess

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 20.01.2016

 dani.user, on 03 decembrie 2016 - 12:54, said:

Cod care face ce mai exact? Daca vrei doar sa recitesti ce scrii, exista stringstream ce face totul in memorie (nu mai freaca discul).
E doar un exemplu basic ce am postat. Imi poti spune ce anume e gresit? Compilatorul nu arunca nicio eroare.

#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
E derutat streamul. Pune
f.seekg(0, ios_base::beg);
dupa ce ai scris si inainte de a citi pentru a-i indica ca vrei sa citesti de la inceput.

Deasemenea, trebuie sa verifici daca e ok streamul dupa ce ai apelat getline, nu inainte
string line;
while (getline(f, line))
{
   cout << line << endl;
}


Edited by dani.user, 03 December 2016 - 13:47.


#9
Sess

Sess

    Junior Member

  • Grup: Members
  • Posts: 68
  • Înscris: 20.01.2016
Multumesc frumos!

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