|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
lettura file testo e inserimento in matrice [c]
ciao raga ho un problema
ho un file di testo scritto in questa maniera 1 2 3 4 5 6 7 8 9 devo memeorizzarlo in una matrice 5x2 (insomma nella stessa forma che vete nel file di testo) Codice:
#include <stdio.h> #include <stdlib.h> int matrice[50][50]; main() { int num,n,m,i,j; char car; FILE *dati; dati=fopen("dati.txt","r"); fscanf(dati,"%d",&n); fscanf(dati,"%[^ \n]");//legge spazi vuoti fscanf(dati,"%d",&m); for(i=0;i<n;i++) for (j=0;j<m;j++) matrice[i][j]=-1; for (i=0;i<=n;i++) { do { if (fscanf(dati,"%[^ \n]%c",&num,&car)==0) { fscanf(dati,"\n%c",&car); } else { matrice[i][j]=num; printf("%c\n",car); } } while (ch!='\n'); } for(i=0;i<n;i++) for (j=0;j<m;j++) printf("%d",matrice[i][j]); fclose(dati); printf("\n"); system("pause"); } Ultima modifica di *MATRIX* : 20-01-2006 alle 21:57. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
vi prego datemi una mano
![]() |
![]() |
![]() |
![]() |
#3 |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16210
|
Secondo me ti fai troppi problemi sulla lettura di spazi vuoti.
Voglio dire: una chiamata del tipo fscanf(dati,"%d",&n) automaticamente passa oltre tutti i caratteri di spaziatura che stanno prima di quelli alfanumerici. Per cui, ad esempio, se devi leggere due interi da una stessa riga, basta che chiami fscanf(dati,"%d%d",&n,&m). Prova a riscrivere le routine di input secondo questa filosofia, e dicci cosa esce fuori.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:31.