Star_Light Δημοσ. 3 Φεβρουαρίου 2013 Share Δημοσ. 3 Φεβρουαρίου 2013 Βασικά ρωτάω επειδη έγραψα λίγο κώδικα ο οποίος άν έχεις πχ εισοδο : Kwstas Kwstopoulos τοτε θα έχεις σαν έξοδο : Kwstopoulos, K. #include <stdio.h> #include <string.h> #include <ctype.h> #define STR_LEN 100 void read_line( char * , int ); int main(void) { char s1[STR_LEN+1] = {'\0'}; char s2[STR_LEN+1] = {'\0'}; char tmp[STR_LEN + 1]= {'\0'}; printf(" Give the first name : "); read_line( s1 , STR_LEN); printf("\n Give the last name : "); read_line( s2 , STR_LEN); strcpy ( tmp , s1 ); strcpy ( s1 , s2 ); strcat( s1 , ", "); strcpy ( s2 , tmp); printf("Name: %s" , s1); putchar( (int) s2[0]); putchar('.'); return 0; } void read_line(char name[] , int n) { int ch , i=0; while( (ch = getchar()) != '\n' ) { if( i ) ch = tolower( ch ); if( !isalpha(ch)) { printf(" \n *Rejected* '%c' is not a letter " , ch); continue; } if(i < n ) name[i++] = ch; } name[i] = '\0'; } Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Frod0 Δημοσ. 3 Φεβρουαρίου 2013 Share Δημοσ. 3 Φεβρουαρίου 2013 Υπάρχει κάποια παρόμοια συνάρτηση με την os της python ; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
migf1 Δημοσ. 5 Φεβρουαρίου 2013 Share Δημοσ. 5 Φεβρουαρίου 2013 Υπάρχει κάποια παρόμοια συνάρτηση με την os της python ; Τι κάνει η os στην python? Μα δεν ειναι το ιδιο με την getchar που ειχαμε συζητησει παλια??? οτι δηλαδη ειναι πιο σωστο να λες int c getchar( c ) παρα char c . Αν δεν σκοπεύεις να χρησιμοποιήσεις "μη char" τιμές μέσα στο s, δεν χρειάζεσαι το cast (άσε που γίνεται έτσι κι αλλιώς implicitly). 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Frod0 Δημοσ. 5 Φεβρουαρίου 2013 Share Δημοσ. 5 Φεβρουαρίου 2013 Τι κάνει η os στην python? This module provides a portable way of using operating system dependent functionality. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
parsifal Δημοσ. 5 Φεβρουαρίου 2013 Share Δημοσ. 5 Φεβρουαρίου 2013 Δεν είναι συνάρτηση, είναι ολόκληρη βιβλιοθήκη με πλειάδα συναρτήσεων για κλήσεις προς το underlying OS. Ποιες από όλες τις συναρτήσεις του python.os module σε ενδιαφέρουν; Βλέποντας στα πεταχτά τί περίπου περιλαμβάνει, δε νομίζω πως υπάρχει 1-προς-1 αντιστοιχία... :-/ Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Frod0 Δημοσ. 5 Φεβρουαρίου 2013 Share Δημοσ. 5 Φεβρουαρίου 2013 Θα με ενδιέφερε περισσότερο να έβρισκα την αντίστοιχη της os.system . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
parsifal Δημοσ. 5 Φεβρουαρίου 2013 Share Δημοσ. 5 Φεβρουαρίου 2013 Η system της βιβλιοθήκης stdlib.h είναι αυτή που ψάχνεις: http://www.cplusplus.com/reference/cstdlib/system/ Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Frod0 Δημοσ. 5 Φεβρουαρίου 2013 Share Δημοσ. 5 Φεβρουαρίου 2013 Η system της βιβλιοθήκης stdlib.h είναι αυτή που ψάχνεις: http://www.cplusplus.com/reference/cstdlib/system/ Αυτό έψαχνα! Ευχαριστώ Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Star_Light Δημοσ. 24 Φεβρουαρίου 2013 Share Δημοσ. 24 Φεβρουαρίου 2013 (επεξεργασμένο) Καλησπέρα παιδια τι κανουμε ??? Έχω μερικες αποριες στον Προεπεξεργαστη .... τι εννοει με την φράση : It is reliance on a preprocessor makes C (along with C++) unique among major programming languages ? Έπειτα οταν λέει οτι ο προεπεξεργαστης εχει μικρη γνωση της C και ως αποτελεσμα αυτου ειναι ευκολο να δημιουργηθουν μη εγκυρα προγραμματα καθως εκτελουνται οι οδηγιες του ενα παραδειγμα πανω σε αυτο θα μπορουσε να ειναι και κατι σαν αυτο #define NUM 1000 ;; Οταν λέει επισης : Another use of __func__ : it can be passed to a function to let it know the name of the function that called it. Ένα παράδειγμα σε αυτο???? Τι εννοει??? Επεξ/σία 25 Φεβρουαρίου 2013 από Star_Light Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
imitheos Δημοσ. 25 Φεβρουαρίου 2013 Share Δημοσ. 25 Φεβρουαρίου 2013 Έπειτα οταν λέει οτι ο προεπεξεργαστης εχει μικρη γνωση της C και ως αποτελεσμα αυτου ειναι ευκολο να δημιουργηθουν μη εγκυρα προγραμματα καθως εκτελουνται οι οδηγιες του ενα παραδειγμα πανω σε αυτο θα μπορουσε να ειναι και κατι σαν αυτο #define NUM 1000 ;; #include <stdio.h> #define main kotsos int main(void) { return 0; } Εννοεί ακριβώς αυτό που λέει δηλαδή ότι ο preprocessor δεν γνωρίζει από C και απλά κάνει λεξικογραφική αντικατάσταση. Στο παραπάνω κώδικα ο gcc δίνει μήνυμα λάθους "undefined reference to `main'" δηλαδή δεν βρίσκει main. Ο preprocessor έκανε μια περασιά το αρχείο και όπου βρήκε τη λέξη main την αντικατέστησε με τη λέξη kotsos χωρίς να πει "ρε c η main χρειάζεται οπότε δεν θα την αλλάξω" γιατί ακριβώς δεν ξέρει από C. Οταν λέει επισης : Another use of __func__ : it can be passed to a function to let it know the name of the function that called it. Ένα παράδειγμα σε αυτο???? Τι εννοει??? #include <stdio.h> void g(void); int main(void) { g(); return 0; } void g(void) { printf("I am %s()\n", __func__); } Έξοδος: I am g() 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
bird Δημοσ. 25 Φεβρουαρίου 2013 Share Δημοσ. 25 Φεβρουαρίου 2013 (επεξεργασμένο) Οταν λέει επισης : Another use of __func__ : it can be passed to a function to let it know the name of the function that called it. Ένα παράδειγμα σε αυτο???? Τι εννοει??? Δες κι αυτό: #include <stdio.h> void g(const char* func) { fprintf(stderr,"Called by %s().\n",func); if(func == __func__) return; g(__func__); return; } void f() { g(__func__); } main() { g(__func__); f(); return 0; } Με έξοδο: Called by main(). Called by g(). Called by f(). Called by g(). Process exited normally. Press any key to continue . . . edit: Έκανα μια αλλαγή για να φανεί περισσότερο η χρήση της... Επεξ/σία 25 Φεβρουαρίου 2013 από bird 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
jimisvog Δημοσ. 25 Φεβρουαρίου 2013 Share Δημοσ. 25 Φεβρουαρίου 2013 Πως μπορω να περασω εναν δισδυαστατο πινακα σε συναρτηση και να επεξεργαστω τα στοιχεια? Αν μπορει καποιος να μ πει την κληση και την δηλωση της συναρτησης.. ο πινακας ειναι Α[Ν][Ν].. Ειναι τετραγωνος πινακας και το μεγεθος το δινει στην main ο χρηστης... Ευχαρστω.. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Timonkaipumpa Δημοσ. 26 Φεβρουαρίου 2013 Share Δημοσ. 26 Φεβρουαρίου 2013 Τον περνάς ως τρισδιάστατο. Δηλαδή, περνάς μία αναφορά στον πίνακα. π.χ. char** arr2d; /* ........ */ void foo(char*** inputArr2d) { /* .... */ } Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Star_Light Δημοσ. 26 Φεβρουαρίου 2013 Share Δημοσ. 26 Φεβρουαρίου 2013 (επεξεργασμένο) Ευχαριστώ @bird .... ωραιο το παράδειγμα σου αν και μετα ειδα οτι και εσυ άλλαξες σε const char* αντι σκέτου char* εδω μου παραπονέθηκε και μενα ο μεταγλωτιστης οτι δεν μπορει να κανει το conversion. υ.γ Δεν έβγαζα με τιποτα την μετάφραση της αλλης χρησης του __func__ ωστε να καταλαβω τι θελει να πει.... ειχα υποψιαστει βεβαια οτι μπορεις να το χρησιμοποιησεις σαν ορισμα ωστε να δεις απο ποια συναρτηση καλειται μια αλλη . #include <stdio.h> void g(const char* func) { printf("g() Called by %s().\n",func); if(func == __func__) return; g(__func__); return; } void f(const char* func) { printf("f() Called by %s().\n",func); g(__func__); } int main(void) { g(__func__); f(__func__); // Same with f(__FUNCTION__); return 0; } υ.γ2 __FUNCTION__ <=> __func__ Επεξ/σία 26 Φεβρουαρίου 2013 από Star_Light Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Erevis Δημοσ. 26 Φεβρουαρίου 2013 Share Δημοσ. 26 Φεβρουαρίου 2013 (επεξεργασμένο) Τον περνάς ως τρισδιάστατο. Δηλαδή, περνάς μία αναφορά στον πίνακα. π.χ. char** arr2d; /*........*/ void foo(char*** inputArr2d){/*....*/} Αν δε θέλει ν'αλλάξει το πού δείχνει ο pointer arr2d δε χρειάζεται να περαστεί by-reference (σε 3πλο αστεράκι δηλαδή), τα στοιχεία του πίνακα ούτως ή άλλως by-reference περνούν αφού o arr2d και ο inputArr2d στην ίδια θέση μνήμης θα δείχνουν. Διπλός pointer είναι αρκετός. Επίσης, αν ο πίνακας δεν είναι δυναμικά δεσμευμένος ΔΕΝ γίνεται να τον περάσεις σε διπλό pointer (τουλάχιστον δεν ειναι standard). Ο μόνος τρόπος να τον περάσεις σε συνάρτηση είναι να υπάρχει στο όρισμα το μέγεθος της 2ης διάστασης του πίνακα. π.χ void processArray(int inputArray[][20], unsigned rows, unsigned columns) {} int main() { int array[10][20]; processArray(array, 10, 20); return 0; } Επεξ/σία 27 Φεβρουαρίου 2013 από Erevis 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις