Stilewag Δημοσ. 11 Απριλίου 2005 Δημοσ. 11 Απριλίου 2005 Thelw na "deixnw" stin consola to % percent compled, stin periptosi px pou kanw read ena text file: #include <stdio.h> #include <stdlib.h> >void main(void) { unsigned long NumberOfEOLN=0,NumberOfChars=0,FileSize=0,i; float Cent; unsigned char Ch; FILE *inF=fopen("./in.txt", "rb"); //measure file's size, number of EOLN, and number of character (without EOLN) while (!feof(inF)) { if (fscanf(inF, "%c", &Ch) >= 0) { if (Ch==10) NumberOfEOLN++; else if (Ch!=10) NumberOfChars++; FileSize++; } } printf("\n\n\nfile size: %li", FileSize); printf("\nnumber of EOLN: %li", NumberOfEOLN); printf("\nnumber of characters (non-EOLN): %li", NumberOfChars); for (i=1; i<=FileSize; i++) { Cent = i % FileSize; printf("%f ", Cent); } fclose(inF); } Kati exw kanei lathos. Ti prepei na alaksw gia na mou deixnei to percent (%) swsta? PS: elpizw na min peirazei pou evala PHP code, apla o browser pou exw den ta deixnei alliws. An anaptisete protimiste to tag [ php ] apo to [ code ]
Legionnaire Δημοσ. 12 Απριλίου 2005 Δημοσ. 12 Απριλίου 2005 Επειδή το '%' είναι δεσμευμένο σύμβολο από την C για χρήση στην printf (και αλλού) ώστε π.χ. να χρησιμοποιείται σε εκφράσεις του στυλ %d, %c, κλπ, θα πρέπει να το γράψεις διπλό δηλαδή "%%". >printf("5%% Complete"); Αποτέλεσμα : "5% Complete"
Stilewag Δημοσ. 12 Απριλίου 2005 Μέλος Δημοσ. 12 Απριλίου 2005 kai egw prospathousa na tou valw \\% to parakatw programma omws mou vgazei lathos: "Invalid use of dot in function main" #include <stdio.h> >void main(void) { float Percent; unsigned int k; unsigned long i; for (i=1; i<=600; i++) { while (i<=600) { Percent = (float)i./ 600; printf("%f ", Percent); } } }
daidalus Δημοσ. 12 Απριλίου 2005 Δημοσ. 12 Απριλίου 2005 Η τελεία που σου υπέδειξα στο άλλο post χρησιμοποιείται ΜΟΝΟ για αριθμους, οχι μεταβλητές.Δοκίμασε να την βάλεις στο 600 δηλαδή κάπως έτσι >i/600.; EDIT:Μόλις ξανακοίταξα τον κώδικα και έχεις infinite loop στην while.Τι ακριβώς θες να κάνεις?
Stilewag Δημοσ. 12 Απριλίου 2005 Μέλος Δημοσ. 12 Απριλίου 2005 EDIT:Μόλις ξανακοίταξα τον κώδικα και έχεις infinite loop στην while.Τι ακριβώς θες να κάνεις? LOL itan ena lathos, apla dokimaza apo afto: for (i=1; i<=600; i++) { ... } na paw se afto: while (i<=600) { i++ ... } --- An thelw na diairesw 2 metavlites, pali sto idio meros tha valw tin teleia?
daidalus Δημοσ. 12 Απριλίου 2005 Δημοσ. 12 Απριλίου 2005 Αν θες να διαιρέσεις δυο μεταλητές και η μια από τις δύο είναι double (ή οποιοσδήποτε αλλος τύπος κινητής υποδιαστολής) τότε δεν χρειάζεται να κάνεις τπτ.Αν και οι δύο μεταβλητές είναι δηλωμένες ώς ακέραιοι τότε κάνε cast μια από τις δύο σε τύπο κινητής υποδιαστιλής πριν εκτελέσεις την διαίρεση. Υ.Γ:Πότε θα αρχίσεις να γράφεις Ελληνικά?
Stilewag Δημοσ. 12 Απριλίου 2005 Μέλος Δημοσ. 12 Απριλίου 2005 Υ.Γ:Πότε θα αρχίσεις να γράφεις Ελληνικά? "Kylisa" pali sta Greeklish Otan viazomai den mporw na grapsw Ellinika. Tha tin vgalw tin signature.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.