Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Mai jos avem numele si mesajele afisate de program dupa compilare si rulare.
- /*
- Natalia Maria
- % gcc -o p1 -Wall -std=c99 p1.c
- ./p1
- Dimensiune vector V: 4
- Introdu 4 numere: 1 2 10 -3
- Elementele vectorului V: 1 2 10 -3
- Elementele vectorului W: 1 2 10 -3
- */
- // Pentru afisare mesaje consola si citire date tastatura.
- #include <stdio.h>
- // Peste tot unde avem `N` va fi inlocuit de valoarea 1024.
- #define N 1024
- // Definim doi vectori `V` si `W` de lungime `N`.
- int V[N], W[N];
- int main() {
- // Citire si afisare vector.
- int n = 0;
- // Cerem de la tastatura dimensiunea vectorului `V`.
- printf("Dimensiune vector V: ");
- scanf("%d", &n);
- printf("Introdu %d numere: ", n);
- // Introducem `n` numere in vector de la tastatura.
- for (int i = 0; i < n; ++i) {
- int e;
- // Unde fiecare numar nou obtinut de la tastatura.
- scanf("%d", &e);
- // Intra pe pozitia `i` in vector. (incepand de la 0)
- V[i] = e;
- }
- printf("Elementele vectorului V: ");
- // Fix asa cum le-am introdus, acum vom afisa numerele din vector, incepand de pe pozitia `0`.
- for (int i = 0; i < n; ++i) printf("%d ", V[i]);
- printf("\n");
- // Scriere si citire din fisier.
- FILE * pf; // acesta este un pointer la fisier, prin care vom controla scrierea si citirea din fisier. (nu de la tastatura)
- // Asa deschidem un fisier cu numele "vec.txt" in modul de scriere ("w").
- pf = fopen("vec.txt", "w");
- // Asa cum am folosit pana cum scanf si printf, le punem un `f` in fata (fscanf si fprintf) pt. a face acelasi set de operatii, insa de aceasta data pe fisiere.
- // Scriem in fisier cate numere avem in vector.
- fprintf(pf, "%d\n", n);
- // Acum scriem in fisier pe urmatorul rand toate numerele unul dupa altul.
- for (int i = 0; i < n; ++i) fprintf(pf, "%d ", V[i]);
- fprintf(pf, "\n");
- // Ne asiguram ca toate datele scrise chiar intra si pe disc. (adica in fisier)
- fflush(pf);
- // Apoi inchidem fisierul, ca asa e frumos.
- fclose(pf);
- // La fel cum am scris numerele in fisier, acum le citim din el.
- int m;
- // De aceea deschidem acelasi fisier in modul de citire de data asta.
- pf = fopen("vec.txt", "r");
- // Aflam cate numere am stocat in fisier in variabila `m`.
- fscanf(pf, "%d", &m);
- // De `m` ori...
- for (int i = 0; i < m; ++i) {
- int e;
- // Vom citi un numar nou aflat in fisier. (fiindca stim deja ca avem `m` numere scrise (fostul `n`)).
- fscanf(pf, "%d", &e);
- // Si punem pe pozitii consecutive, incepand de la 0, in vector numerele anterior stocate.
- W[i] = e;
- }
- // Afisam din nou, de data aceasta continutul vectorului `W`, care ar trebui sa fie identic cu cel anterior (`V`).
- printf("Elementele vectorului W: ");
- for (int i = 0; i < m; ++i) printf("%d ", W[i]);
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement