Salve ragazzi sto trovando problemi a svolgere una cosa banale(lo è) ma che non riesco a risolvere....
vi spiego semplicemente che voglio creare un programma che legge da file caratteri e li'nserisca in una matrice..... però quando incontra lo spazio non lo deve inserire nella matrice..
uso la funzione fscanf perchè prende un carattere alla volta e lo so che potrei usare fgets ma a me serve prendere un carattere alla volta e controllare che non prenda gli spazzi..
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
/*
*
*/
int main() {
char nomefile[30],mat[5][30],c;
int i,j,cont=0,x=0,y=0;
FILE *fp;
printf("Digita nome file=");
scanf("%s",nomefile);
do{
if((fp=fopen(nomefile,"r"))==NULL){
printf("\nIl file non e stato aperto/trovato.");
printf("\n Digita di nuovo il nome del file(con estensione)=");
scanf("%s",nomefile);
}
}while(fp==NULL);
while(!feof(fp)){
if(((c=getc(fp))!=' ')&&(c!='\n')){
mat[x][y]=c;
y++;
cont++;
}
else if(c=='\n'){
x++;
}
}
for(i=0;i<x;i++){
for(j=0;j<y;j++){
printf("\n%c",mat[i][j]);
}
}
printf("\nCi sono %d lettere",cont);
return 0;
}
nel file ci sono:
abc
sgf
dgf
ma mi stampa le prime 3 e poi cose senza senzo o mancanti.... aiutatemi per favore...