|
|||||||
|
|
|
![]() |
|
|
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 22:57. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
vi prego datemi una mano
|
|
|
|
|
|
#3 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16214
|
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: 02:56.



















