spilia Δημοσ. 3 Ιουνίου 2011 Δημοσ. 3 Ιουνίου 2011 3. Να φτιαχτεί ένα πρόγραμμα σε C που: α) Θα δημιουργεί το αρχείο input.txt β) Αν υπάρχει ήδη το αρχείο αυτό, τότε θα διαγράφει τα περιεχόμενά του γ) Θα ζητάει το ονοματεπώνυμο του χρήστη και ακολούθως θα το γράφει μέσα στο αρχείο με ΑΝΤΙΣΤΡΟΦΗ σειρά πρεπει να κανω αυτο εχω φτιαξει τον παρακατω κωδικα αλλα κατι κανω λαθος. >#include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <string.h> main(){ int fd1,n,n1,fd2; char onoma,eponimo; printf("dose to onoma soy\n"); scanf("%s",&onoma); printf("dose to eponimo soy\n"); scanf("%s",&eponimo); fd1 = open ("input.txt",O_WRONLY | O_CREAT | O_TRUNC , 0644); if(fd1 == -1){perror("open"); exit(1);} n=write(fd1,&onoma,strlen(&onoma)); close(fd1); fd2 = open ("input.txt",O_WRONLY | O_APPEND , 0644); if(fd1 == -1){perror("open"); exit(1);} n1=write(fd2,&eponimo,strlen(&eponimo)); }
migf1 Δημοσ. 3 Ιουνίου 2011 Δημοσ. 3 Ιουνίου 2011 >#include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <string.h> main(){ int fd1,n,n1,fd2; char onoma,eponimo; // <--------- char onoma[20+1], eponimo[35+1]; printf("dose to onoma soy\n"); scanf("%s",&onoma); // <--------- fflush(stdin); scanf("%s", onoma); printf("dose to eponimo soy\n"); scanf("%s",&eponimo); // <--------- fflush(stdin); scanf("%s", eponimo); // ... } Έχεις λάθος τα strings onoma ki eponimo (σου έβαλα σχετικά σχόλια). Επίσης, αν δεν είναι προϋπόθεση της άσκησης, αντί για open() και write() μπορείς να χρησιμοποιήσεις τις απλές: fopen() και fputs() που είναι πολύ πιο απλές (δεν κοίταξα καθόλου τον κώδικα σου από το διάβασμα του eponimo και κάτω, απλά μου έκανε εντύπωση που χρησιμοποιείς open() και write() για τη διαχείριση του αρχείου )
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.