JdCZT Δημοσιεύτηκε Μάρτιος 25, 2011 #1 Κοινοποίηση Δημοσιεύτηκε Μάρτιος 25, 2011 Παιδες εχω χαζεψει για τα καλα...εστω αρχειο κειμενου απο "ps -A > PID" της μορφης: PID TTY TIME CMD 1 ? 00:00:00 init 2 ? 00:00:00 kthreadd . . . . . . . . . . . . 4312 ? 00:00:00 hald-addon-stor και κωδικα #include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(){ FILE *fp; char PID[6],c; int a; fp=fopen("PID.txt","r"); while ((c=fgetc(fp)) != EOF ) { fgets(PID,6,fp); printf(PID); } fclose (fp); scanf("%d",&a); return 0;} Δε θα επρεπε να απομονωνει τους πρωτους 6 χαρακτηρες καθε γραμμης και μονο αυτους και μετα να τους εκτυπωνει;;; Εμενα μου κανει printf ολο το αρχειο... Link to comment Share on other sites More sharing options...
Jaco Μάρτιος 25, 2011 #2 Κοινοποίηση Μάρτιος 25, 2011 To σκισες... έχεις βάλει ένα loop του οποίου το control flow είναι char based, γιατί η συνθήκη σου είναι βασισμένη σε char και στο εσωτερικό του block προσπαθείς να χειριστείς streams... αυτό δεν είναι σωστό...Πρέπει να αφαιρέσεις το while και να το κάνεις όπως εδώ.... Link to comment Share on other sites More sharing options...
JdCZT Μάρτιος 25, 2011 Author #3 Κοινοποίηση Μάρτιος 25, 2011 Ok αντικατεστησα τη λογικη συνθηκη της while με feof γιατι καπως πρεπει να περπαταει μεχρι το τελος του αρχειου...το παραδειγμα ηταν για την πρωτη μονο γραμμη...αυτο που με παραξενεψε ειναι οτι δοκιμασα με for για να κανω τη loop βημα βημα και μετα την εκτυπωση της επικεφαλλιδας PID συνεχισε στη ΤΤΥ ενω εγω θελω να συνεχισει απο κατω... fp=fopen("PID.txt","r"); if (fp == NULL) perror ("Error opening file"); else { while(!feof(fp)){ fgets(PID,6,fp); printf("%s",PID); } } fclose (fp); κανονικα δεν επρεπε να πηγαινει στην επομενη γραμμη η fgets? Τhx επι ευκαριας και Χρονια Πολλα Link to comment Share on other sites More sharing options...
MadCatMk21416003342 Μάρτιος 30, 2011 #4 Κοινοποίηση Μάρτιος 30, 2011 Υπάρχει λόγος που γράφεις σε C++; Είναι πιο εύκολο να κάνεις τη δουλειά σου κάπως έτσι:$ ps -A | cut -b -6*Συγγνώμη για το offtopic αλλά.. αλλά. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.