Peacebreaker Posted January 15, 2013 Report Posted January 15, 2013 (edited) #include <fcntl.h> #include <stdio.h> #include <string.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> int main (int argc, char* argv[]) { char* filename = argv[1]; int fd = open (filename, O_RDONLY | O_CREAT | O_APPEND, 0666); if (fd) { char buffer[1024]; int n = read(fd, buffer, 1024);} close (fd); return 0; } Scrieti un program "sortint" care se va lansa sub forma: sortint f unde f este un fisier continand reprezentari interne de intregi si sorteaza intregii din acest fisier. Se vor folosi doar functiile de la nivelul inferior de prelucrare a fisierelor si nu se vor folosi fisiere auxiliare. Ok pana aici toate bune si frumoase doar ca ... Buffer e char si mie foarte greu sa le sortez sa zic asa ma puteti ajuta in privinta doar sa le citesc in rest ma descurc ... Dar citirea ma omoara Edited January 15, 2013 by Peacebreaker Quote
nedo Posted January 15, 2013 Report Posted January 15, 2013 Cum sunt intregi notati in fisier, pe aceeasi linie, separati de spatii/virgule?Daca am inteles bine ai un fisier care contine niste numere si tu trebuie sa le sortezi?Pai citesti totul intr-un char dupa care creezi un array de int-uri si folosesti strtok pentru a imparti si atoi pentru a transforma din char in int.Exemplu strtok.Ma gandesc in loop-ulwhile (ch != NULL) { printf("%s\n", ch); ch = strtok(NULL, " ,");Schimbi printf cu vector_ints = atoi(ch);unde vector_ints este un array de int-uri(int vector_ints[25] sau cam cate crezi tu ca sunt).Iar pentru sortare gasesti tu un algoritm de sortare, cel mai usor de implementat(cred) este bubble sort.Eventual posteaza un exemplu de cum arata fisierul f. Quote
Peacebreaker Posted January 15, 2013 Author Report Posted January 15, 2013 Fisierul f e ceva genu 0101010101010 100101010101 101010101010 ceva genu asta dar mersi mult am inteles ma apuc de o implementare si o sa si postez sa fie pe aici. Quote