Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

Fisiere- vectori

- - - - -
  • Please log in to reply
4 replies to this topic

#1
MarcoFilimon

MarcoFilimon

    New Member

  • Grup: Junior Members
  • Posts: 23
  • Înscris: 04.07.2017
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.
formatare cod


#2
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,665
  • Înscris: 29.08.2013
fprintf(f,"%2d",x[i]);


Nu pui delimitator intre 2 elemente?
Vezi fscanf.

#3
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
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
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
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.


#5
MarcoFilimon

MarcoFilimon

    New Member

  • Grup: Junior Members
  • Posts: 23
  • Înscris: 04.07.2017
Multumesc frumos tuturor!

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate