c++ file << beggining of line

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

c++ file << beggining of line

Δημοσίευσηαπό bbabis01 » 02 Δεκ 2013, 20:04

Έχω δημιουργήσει ένα ofstream file.

Κάποια στιγμή μέσα στο πρόγραμμα μου τυπώνω στο αρχείο (file<<"""") κάποιες πληροφορίες ανά γραμμή. Μόλις τελειώνω το γράψιμο μιας γραμμής με τις πληροφορίες που θέλω τότε αποκτώ και μια πληροφορία για μία μτβλ που έχω. Αυτή τη μεταβλητή θέλω να την εκτυπώσω στην αρχή αυτής της σειράς.. Η διαδικασία θα υλοποιείται σε κάθε σειρά..
Τη πληροφορία δλδ που θέλω να την εκτυπώσω στην αρχή της σειράς την αποκτώ στο τέλος..
Πως μπορώ να το καταφέρω;

Γράφω file << "\r th plhroforiamoy" αλλά έτσι μου εμφανίζει τη σειρά όπως γράφτηκε και thplhroforiamoy στην αμέσως από κάτω γραμμή
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Μέτριο
2 Ubuntu 13.04 raring 3.8.0-21-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i5 CPU M 480 2.67GHz ‖ RAM 3754 MiB ‖ Hewlett-Packard 166B - HP Pavilion g7 Notebook PC
4 Intel Integrated Graphics [8086:0046] {i915} ⋮ AMD nee ATI Seymour [Radeon HD 6400M/7400M Series] [1002:6760] {fglrx_pci}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
bbabis01
punkTUX
punkTUX
 
Δημοσιεύσεις: 206
Εγγραφή: 11 Οκτ 2012, 00:43
Εκτύπωση

Re: c++ file << beggining of line

Δημοσίευσηαπό simosx » 03 Δεκ 2013, 00:04

Δεν είναι κατανοητό. Μπορείς να φτιάξεις μια πολύ μικρή εκδοχή του προγράμματος που να δείχνει το πρόβλημα, καθώς και το τι θα ήθελες να κάνει στην πραγματικότητα;
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: c++ file << beggining of line

Δημοσίευσηαπό bbabis01 » 03 Δεκ 2013, 16:33

Το έψαξα περισσότερο το θέμα και μαλλον δεν γίνεται... λόγω του ότι είναι εγγραφή σε αρχείο (στατικό).

Το ξαναγράφω μπας και σκεφτεί κανείς κάτι:
ofstream file
.
.
synartisi(που εκτυπώνει στο file σε μία σειρά διάφορους αριθμούς... Μετράω αυτούς τους αριθμούς και αποθηκεύω το πλήθος τους σε μια μτβλ counter).
Αμέσως μετά τη synartisi θέλω να εκτυπωσω πλεον στο file και τη μτβλ counter αλλά στην αρχή της σειράς..

Αυτό από ότι καταλαβαίνω είναι αδύνατο.. εκτός εάν διαβάσω τη γραμμή - τη σβήσω -γράψω το counter και τη ξαναγραψω τη γραμμή .... χαζό..
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Μέτριο
2 Ubuntu 13.04 raring 3.8.0-21-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i5 CPU M 480 2.67GHz ‖ RAM 3754 MiB ‖ Hewlett-Packard 166B - HP Pavilion g7 Notebook PC
4 Intel Integrated Graphics [8086:0046] {i915} ⋮ AMD nee ATI Seymour [Radeon HD 6400M/7400M Series] [1002:6760] {fglrx_pci}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
bbabis01
punkTUX
punkTUX
 
Δημοσιεύσεις: 206
Εγγραφή: 11 Οκτ 2012, 00:43
Εκτύπωση

Re: c++ file << beggining of line

Δημοσίευσηαπό talos » 03 Δεκ 2013, 17:55

Μπορείς είτε να χρησιμοποιήσεις ένα strsream είτε ένα προσωρινό αρχείο (δες την συνάρτηση tmpfile).
talos
babeTUX
babeTUX
 
Δημοσιεύσεις: 28
Εγγραφή: 12 Νοέμ 2013, 20:21
Εκτύπωση

Re: c++ file << beggining of line

Δημοσίευσηαπό bbabis01 » 03 Δεκ 2013, 18:30

EDIT:

Όλο αυτό που περιέγραψα θα επαναλαμβάνεται πολλές φορές ... Δλδ θα γραφτούν συνολικά κάτι χιλιάδες τέτοιες γραμμές..


ΥΓ: Για αυτό που θέλω να κάνω συνολικά έχω βρει τρόπο, αλλά κάνω διπλάσιες πράξεις.. γιαυτό αν λυνόταν αυτό θα ήταν πολύ πιο αποδοτικό
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Μέτριο
2 Ubuntu 13.04 raring 3.8.0-21-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i5 CPU M 480 2.67GHz ‖ RAM 3754 MiB ‖ Hewlett-Packard 166B - HP Pavilion g7 Notebook PC
4 Intel Integrated Graphics [8086:0046] {i915} ⋮ AMD nee ATI Seymour [Radeon HD 6400M/7400M Series] [1002:6760] {fglrx_pci}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
bbabis01
punkTUX
punkTUX
 
Δημοσιεύσεις: 206
Εγγραφή: 11 Οκτ 2012, 00:43
Εκτύπωση

Re: c++ file << beggining of line

Δημοσίευσηαπό pc_magas » 03 Δεκ 2013, 18:39

Αντί να τα εκτυπώνεις γιατί δεν αποθηκεύεις σε ένα pool ή σε μια custom, δομή δεδομένων (πχ. Λίστα) τις πληροφορίες που θές και μετά ένα thread να τα τυπώνει σε αρχείο.

Ακόμη μια άλλη λύση είναι αντί να τα αποθηκεύεις σε αρχείο να τα αποθηκεύεις τα δεδομένα σε μια sqllite έτσι μετά μπορεί να κάνεις update. Εφόσον το έχεις αποθηκεύσει στην sqllite μπορείς μετά να το εξάγεις σε ότι αρχείο θες και σε όποιο άλλο φορμάτ - μορφή θές.

Τέλος μπορείς να γράφεις 2 προσωρινά αρχεία ένα για το index και άλλο για το data και σε άλλο νήμα ή διεργασία να γίνεται το τελικό Merge των 2 αρχείων στην μορφή που θες.

Γενικά εκτυπώνω κάτι και μετά εκτυπώνω πριν από αυτό που τύπωσα άλλη μορφή είναι κάπως λάθος κατά την ταπεινή μου άποψη.
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: c++ file << beggining of line

Δημοσίευσηαπό bbabis01 » 04 Δεκ 2013, 00:18

pc_magas έγραψε:Γενικά εκτυπώνω κάτι και μετά εκτυπώνω πριν από αυτό που τύπωσα άλλη μορφή είναι κάπως λάθος κατά την ταπεινή μου άποψη.


Και κατα τη δική μου :)

Ευχαριστώ όλους για τις προτάσεις... Θα τα κοιτάξω..
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Μέτριο
2 Ubuntu 13.04 raring 3.8.0-21-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i5 CPU M 480 2.67GHz ‖ RAM 3754 MiB ‖ Hewlett-Packard 166B - HP Pavilion g7 Notebook PC
4 Intel Integrated Graphics [8086:0046] {i915} ⋮ AMD nee ATI Seymour [Radeon HD 6400M/7400M Series] [1002:6760] {fglrx_pci}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 05)
bbabis01
punkTUX
punkTUX
 
Δημοσιεύσεις: 206
Εγγραφή: 11 Οκτ 2012, 00:43
Εκτύπωση


Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι