kim. Opublikowano 27 Czerwca 2008 Zgłoś Opublikowano 27 Czerwca 2008 No wiec mam program który ma wczytywać liczby z pliku do macierzy(np. 1; 2; 3) i je transponować. Niestety nie wychodzi mi wczytywanie z pliku, mam tylko z klawiatury. Co gdzie zmienić? #include <stdio.h>#include <stdlib.h>int main(void){int i,j,n,m,**mac;scanf("%d %d",&n,&m);mac = (int **) malloc(n*sizeof(int));for(i=0;i<n;i++) mac[i] = (int *) malloc(m*sizeof(int));for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&mac[i][j]);/wyświetla macierz transponowanafor(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%d ",mac[j][i]); printf("\n"); }return 0;} Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
stivo Opublikowano 27 Czerwca 2008 Zgłoś Opublikowano 27 Czerwca 2008 Niestety nie wychodzi mi wczytywanie z plikuA coś zrobiłeś w tej sprawie? Musisz zrobić uchwyt do pliku i z niego wczytywać wartości.. Wiem jak to zrobić za pomocą strumieni w C++ ale w czystym C nie bardzo.. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Mardok Opublikowano 28 Czerwca 2008 Zgłoś Opublikowano 28 Czerwca 2008 Samo czytanie pliku (domyślam się tekstowego) jest banalnie proste, pierwszy lepszy przykład : FILE *wskaznik; char ciag[81]; wskaznik = fopen("plik.txt","r"); while (fgets(ciag,80,wskaznik)!=NULL) printf("%s",ciag); fclose(wskaznik); Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
rezo_ Opublikowano 29 Czerwca 2008 Zgłoś Opublikowano 29 Czerwca 2008 (edytowane) Napisalem Ci w C wczytywanie macierzy z pliku do tablicy, dla pliku wejsciowego o tak zorganizowanych danych: 30 2 10 2 10 0 0 Gdzie pierwszy wiersz zawiera rozmiar macierzy, a kolejne wiersze jej wspolczynniki. Program przyjmuje nazwe pliku jako argument wywolania (int argc, char*arg[] w main'ie ponizej), dlatego jezeli zalozmy twoj program nazywiesz start, a plik z macierza macierz.txt, to nalezy wywolac program spod konsoli w nastepujacy sposob: start macierz.txt Ponizszy kod jest odporny na zlosliwe(=bledne) dane wejsciowe. int main(int argc, char *argv[]){ FILE *plik; char *nazwa=argv[1]; float **mac,tmp; int a,n,i,j; /*----------------PRACA Z PLIKIEM----------------------------*/ if (!(plik = fopen (nazwa,"r"))){ /*Otwieramy plik jesli to mozliwe*/ printf("Nie mozna otworzyc pliku!"); exit (0); } if(!fscanf(plik,"%d",&n)||n<0){ /*Sczytujemy wielkosc macierzy o ile jest poprawna*/ printf("Niepoprawny rozmiar macierzy!"); exit (0); } if (!(mac=(float**)(malloc(n*(sizeof(float*)))))){ /*alokujemy dynamicznie tablice o ile starcza pamieci*/ printf("Za malo pamieci!"); exit (0); } for (i=0; i<n; i++){ if(!(mac[i]=(float*)(malloc(n*(sizeof(float)))))){ printf("Za malo pamieci!"); exit (0); } } for (i=0; i<n; i++){ /*wczytujemy dane do tablicy o ile dane w pliku sa poprawne*/ for (j=0; j<n; j++){ if(((a=fscanf(plik,"%f",&mac[i][j]))==EOF)||!a){ printf("Niepoprawne dane w pliku!"); exit (0); } } } fclose(plik); /*--------------KONIEC PRACY Z PLIKIEM---------------------*/ return 0;} Edytowane 29 Czerwca 2008 przez moreno Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Kasisko Opublikowano 4 Sierpnia 2008 Zgłoś Opublikowano 4 Sierpnia 2008 #define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <stdlib.h> #include <math.h> #include<string.h> int main() { FILE *input,*output,*output2; int suma,tab[128][7]; double wart_sred; char c; int i, j, n; input= fopen("input.txt","r"); output=fopen("output.txt","w+"); output2=fopen("output2.txt","w+"); if (input==NULL) { printf("blad\n"); return 0; }; if (output==NULL) { printf("blad\n"); return 0; }; if (output2==NULL) { printf("blad\n"); return 0; }; Ja w swoim projekcie tak zaimplementowałam czytanie z pliku, ale było to czytanie wraz ze sprawdzaniem pliku, w tym miejscu urywam:/ bo dalej dzieją sie nieciekawe rzeczy :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...