Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

datoteke-čitanje i spremanje matrice
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
.anchy.
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 11. 2007. (20:03:46)
Postovi: (1BC)16
Sarma = la pohva - posuda
= 15 - 11
Lokacija: Zgb

PostPostano: 13:41 čet, 27. 10. 2011    Naslov: datoteke-čitanje i spremanje matrice Citirajte i odgovorite

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]);


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 14:19 čet, 27. 10. 2011    Naslov: Citirajte i odgovorite

Ako zelis da ti zanemari bjeline (raznaci, tabovi, skokovi u novi red,...), dakle u [tt]scanf()[/tt] u drugoj petlji, onda stavi [tt]" %c"[/tt] (dakle, razmak ispred [tt]%c[/tt]).

Ako matrica moze imati i "legalnih" razmaka, onda u prvu petlju, a iza druge, dodaj [tt]scanf(" ");[/tt], da ti pocisti viskove izmedju dvije linije.
Ako zelis da ti zanemari bjeline (raznaci, tabovi, skokovi u novi red,...), dakle u scanf() u drugoj petlji, onda stavi " %c" (dakle, razmak ispred %c).

Ako matrica moze imati i "legalnih" razmaka, onda u prvu petlju, a iza druge, dodaj scanf(" ");, da ti pocisti viskove izmedju dvije linije.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan