Dakle,čitam matricu oblika
abcde
fghij
klmno
iz datoteke naziva lab.txt. Ne znam unaprijed dimenziju matrice pa ju dobijem čitanjem 1.reda do \n, i koliko \n ima. I sada,problem je što kada ju ponovo čitam da bih ju "spremila u programu" moj fscanf ne zanemaruje \n, i zadnjih m-1 slova zanemari(gdje je dimenzija matrice mxn),jer spremi te \n. Npr.ovdje zanemari "no". Kako da to riješim?
[code:1]#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *in;
if(( in = fopen("lab.txt","rt") ) == NULL){
printf("Greska prilikom otvaranja");
exit(1);
}
char c;
int i=0,j=0,n=0,m;
while(fscanf(in, "%c", &c) > 0){
++i;
if(c=='\n'){
if(n==0) n=i-1;
j++;
}
}
m=j;
rewind(in);
char A[m][n];
for(j=0;j<m;++j)
for(i=0;i<n;++i){
fscanf(in,"%c", &A[i][j]);
[/code:1]
Dakle,čitam matricu oblika
abcde
fghij
klmno
iz datoteke naziva lab.txt. Ne znam unaprijed dimenziju matrice pa ju dobijem čitanjem 1.reda do \n, i koliko \n ima. I sada,problem je što kada ju ponovo čitam da bih ju "spremila u programu" moj fscanf ne zanemaruje \n, i zadnjih m-1 slova zanemari(gdje je dimenzija matrice mxn),jer spremi te \n. Npr.ovdje zanemari "no". Kako da to riješim?
Kod: | #include <stdio.h>
#include <stdlib.h>
int main(){
FILE *in;
if(( in = fopen("lab.txt","rt") ) == NULL){
printf("Greska prilikom otvaranja");
exit(1);
}
char c;
int i=0,j=0,n=0,m;
while(fscanf(in, "%c", &c) > 0){
++i;
if(c=='\n'){
if(n==0) n=i-1;
j++;
}
}
m=j;
rewind(in);
char A[m][n];
for(j=0;j<m;++j)
for(i=0;i<n;++i){
fscanf(in,"%c", &A[i][j]);
|
|