Fisiere- vectori
Last Updated: May 22 2018 17:48, Started by
MarcoFilimon
, May 21 2018 18:05
·
0
#1
Posted 21 May 2018 - 18:05
Am o mica problemuta la un programel pe care vreau sa l rezolv. Am de citit un vector V ( elem intregi de dim n ) . Il afisezi , si dupa il salvez intr un fisier pe disc .
Problema care nu mi iese, este sa citesc din fisier intr un alt vector W , si sa l afisez pe consola. #include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { int n; FILE* f; int i, j; int x[100], y[100]; printf("Introd dim vect\n"); if (scanf("%d", &n) != 1) { printf("D.E"); exit(1); } printf("Introd x\n"); for (i = 0; i < n; i++) if (scanf("%d", &x[i]) != 1) { printf("D.E"); exit(1); } printf("Vectorul x=\n"); for (i = 0; i < n; i++) printf("%d\t", x[i]); f = fopen("E:\\Dev\\Test21.txt", "w"); for (i = 0; i < n; i++) fprintf(f, "%2d", x[i]); char k; fclose(f); f = fopen("E:\\Dev\\Test21.txt", "r"); int m = 0; do { k = getc(f); if (k != EOF) { y[m] = k; m++; } } while (k != EOF); fclose(f); printf("\n"); for (i = 0; i < m; i++) printf("%d\t", y[i]); return 0; } Ultima parte. Nu stiu cum sa fac acest lucru.
Edited by dani.user, 21 May 2018 - 21:13.
|
#2
Posted 21 May 2018 - 18:21
fprintf(f,"%2d",x[i]); Nu pui delimitator intre 2 elemente? Vezi fscanf. |
#3
Posted 21 May 2018 - 20:10
Nu m-am uitat pe cod insa verfica dupa ce citesti fisierul , sa-l inchizi apoi cand scrii in fisier , deschizi scrii inchizi.
Apoi cand vrei sa citesti in W, deschizi citesti inchizi |
#4
Posted 22 May 2018 - 06:48
Ai doua probleme. In primul rind scrii in fisier cu spatiu intre numere, Trebuie sa scoti "2" din fprintf":
for (i = 0; i < n; i++) fprintf(f, "%d", x[i]); A doua problema este ca citesti char din fisier, deci o sa printezi codul ASCII. Trebuie sa scazi din valoare '0', adica: if (k != EOF) { y[m] = k - '0'; m++; } Edited by Mosotti, 22 May 2018 - 06:48. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users