Προς το περιεχόμενο

ερωτηση για ανακατευθυνση στη C


jtsc21

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια σας και παλι programmers

 

εχω τις εξης απορριες πανω στην ανακατευθυνση στη C απο ενα αρχειο txt:

 

1.πως γινετε ανακατευθυνση στο dev C++?

2.εστω οτι ειμαστε σε command line σε LINUX(πχ Ubuntu)

ακομα εστω οτι εχουμε ενα αρχειο πηγαιου κωδικα myprog.c

το μεταγλωτιζουμε με gcc -o myprog myprog.c οπου και παραγεται το εκτελεσιμο

myprog.

 

εστω ακομα οτι σε αυτο το προγραμμα (myprog.c) εχουμε πινακα με struct δηλαδη κατι τετοιο

struct foo{

int a;

int b;

int c;

}

 

typedef struct foo foo;

 

και εχουμε ορισει ακομα

 

foo pinakas[100]

 

 

 

 

εστω οτι εχουμε και ενα αρχειο κειμενου data.txt

το οποιο ειναι καπως ετσι

 

a b c

 

1 3 3

4 4 5

4 6 9

7 5 4

5 2 5

5 1 7

3 7 8

3 8 1

. . .

. . .

. . .

 

το ερωτημα ειναι το εξης: πως μπορω να αποδοσω με ανακατευθυνση στις μεταβλητες του προγραμματος τις τιμες που εχω ορισει στο data.txt????

 

 

(ειμαι σιγουρος δε γινετε να γραψω myprog < data.txt)....

 

 

 

P.S. προσπαθησα να ειμαι οσο το δυνατον πιο κατανοητος...

 

 

 

ευχαρισττω εκ των πρωτερων

Δημοσ.

βασικα δε πολυκαταλαβαινω τι εννοεις...θα προσπαθησω να κανω λιγο πιο κατανοητο αυτο που θελω...

 

λοιπον εχουμε ενα πινακα οπου καθε κουτακι του πινακα εχει 3 "υπο"κουτακια(a,b,c του struct).αυτο που ζηταω ειναι να αποδοθουν οι τιμες του data.txt στο αντιστοιχο κουτακι

 

 

πχ εστω οτι στο data.txt εχω

a bc

135

246

789

αυτο που θελω ουσιαστικα να γινει ειναι το εξης σχημα

 

----------

|1|3|5|

----------

|2|4|6|

----------

|7|8|9|

----------

 

 

 

αλλα αυτη η δουλεια θελω να γινει με ανακατευυνση

Δημοσ.

Δεν υπάρχει κάτι ιδιαίτερο που πρέπει να κάνεις σε αυτήν την περίπτωση. Απλά, γράφεις το πρόγραμμά σου σαν να περίμενες είσοδο από τον χρήστη μέσω του πληκτρολογίου:

 

>
/* mplampla */

int counter;
char useless[2];
foo pinakas[100];

scanf("%s %s %s", useless, useless, useless);	/* Gia na parakamf8ei h prwth grammh "a b c" */

for(counter = 0; counter < 100; counter++)
	scanf("%d %d %d", &(pinakas[counter].a), &(pinakas[counter]., &(pinakas[counter].c));

/* mplampla */

 

...και το εκτελείς από τερματικό, ορίζοντας την ανακατεύθυνση εισόδου που θέλεις:

 

>
bash-3.2# a.out < data.txt

Δημοσ.
Δεν υπάρχει κάτι ιδιαίτερο που πρέπει να κάνεις σε αυτήν την περίπτωση. Απλά, γράφεις το πρόγραμμά σου σαν να περίμενες είσοδο από τον χρήστη μέσω του πληκτρολογίου:

 

>
/* mplampla */

int counter;
char useless[2];
foo pinakas[100];

scanf("%s %s %s", useless, useless, useless);	/* Gia na parakamf8ei h prwth grammh "a b c" */

for(counter = 0; counter < 100; counter++)
	scanf("%d %d %d", &(pinakas[counter].a), &(pinakas[counter]., &(pinakas[counter].c));

/* mplampla */

 

...και το εκτελείς από τερματικό, ορίζοντας την ανακατεύθυνση εισόδου που θέλεις:

 

>
bash-3.2# a.out < data.txt

 

 

 

thanks...νομιζα οτι χρειαζοταν κατι ιδιαιτερο...μαλλον με μπερδεψε η στοιχηση...

 

και παλι thanks

Δημοσ.

ξερει καποιος πως κανουμε εισαγωγη με ανακατευθυνση στο dev C++?

 

δηλαδη ποιο ειναι το αντιστοιχο prog < a.txt(command line) στο dev?

Δημοσ.

Κάπου στα μενού του Dev-C++ πρέπει να υπάρχει επιλογή για Program Arguments. Μπορείς όμως κάλλιστα να ανοίξεις μία γραμμή εντολών και να πλοηγηθείς (με την εντολή cd) στον κατάλογο όπου βρίσκεται το εκτελέσιμο που παρήγαγε το Dev-C++. Εκεί, δίνεις απλά την εντολή με τις παραμέτρους που θέλεις...

Δημοσ.
Κάπου στα μενού του Dev-C++ πρέπει να υπάρχει επιλογή για Program Arguments. Μπορείς όμως κάλλιστα να ανοίξεις μία γραμμή εντολών και να πλοηγηθείς (με την εντολή cd) στον κατάλογο όπου βρίσκεται το εκτελέσιμο που παρήγαγε το Dev-C++. Εκεί, δίνεις απλά την εντολή με τις παραμέτρους που θέλεις...

 

thanks man! δεν ηξερα οτι γινετε στο command line στο dos να δωσεις ανακατευθυνση οπως και στο terminal στο linux...thanks again!:-D:-D:-D:-D:-D

  • 1 χρόνο αργότερα...
Δημοσ.
thanks man! δεν ηξερα οτι γινετε στο command line στο dos να δωσεις ανακατευθυνση οπως και στο terminal στο linux...thanks again!:-D:-D:-D:-D:-D

 

 

Ξέρει κάποιος αν μπορώ να χρησιμοποιήσω ανακατεύθυνση στα windows?

Δημοσ.

Ρωτάς αν μπορείς να χρησιμοποιήσεις ανακατεύθυνη στα Windows. Η απάντηση είναι: «Ναι, μπορείς».

 

Αν θέλεις πιο συγκεκριμένη απάντηση, κάνε και πιο συγκεκριμένη την ερώτηση.

  • 3 εβδομάδες αργότερα...
Δημοσ.

Να στο επεξηγήσω, όσο πιο αναλυτικά μπορώ:

 

Το μέλος jtsc21 ρωτάει στο μήνυμα #6 αν μπορούμε να έχουμε ανακατεύθυνση εισόδου σε περιβάλλον Windows (όπως γίνεται σε περιβάλλον Linux), ώστε να τρέξει το πρόγραμμα που φτιάχνει παίρνοντας είσοδο δεδομένων από κάποιο έτοιμο αρχείο txt. Του έδωσα δύο εναλλακτικές λύσεις γι' αυτό που θέλει να κάνει: Μία από τα μενού του developing προγράμματος (DevC++) που χρησιμοποιεί και μία πιο απλή, να ανοίξει το Command Prompt (Γραμμή Εντολών) των Windows, να πλοηγηθεί στον υποκατάλογο όπου υπάρχει το exe του προγράμματος που έχει φτιάξει και να το τρέξει από εκεί, δίνοντας μέσω ανακατεύθυνσης ως είσοδο το txt. Το συμπέρασμα λοιπόν που βγαίνει και το επισημαίνει ο jtsc21 στο μήνυμα #8 είναι ότι: «Ναι, και σε περιβάλλον γραμμής εντολών των Windows μπορείς να χρησιμοποιήσεις ανακατεύθυνση, όπως ακριβώς και σε τερματικό Linux». Εσύ κάνεις Παράθεση του μηνύματος #8 και ρωτάς από κάτω κάτι του οποίου η απάντηση δίνεται ήδη στο μήνυμα που κάνεις Παράθεση. Εγώ απλώς επεσήμανα το παράδοξον του πράγματος!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...