ďťż

Ładny brzuch

hej, mam problem z tym kodem podal go nam nasz nauczyciel i jak mu powiedzielismy ze sa bledy to nie potrafil nam odpowiedziec dlaczego niedziala?? kompilacja visual c++ 6.0 o to kod:
#include<stdio.h> #define MAX 1000 double Tablica[MAX]; int N; void czytaj(FILE *f) { fscanf(f,"%d", &N); for(int i=0; i<N; i++) fscanf(f,"%lf", Tablica+i); } void wypisz(FILE *f) { fprintf(stdout,"%s"); } int main() { char nazwa[100]; FILE *we; printf("podaj nazwe pliku:"); scanf("%99s",nazwa); we=fopen(nazwa,"r"); if(we==NULL) { printf("brak pliku\n"); return 0; } czytaj(we); wypisz(stdout); fclose(we); return 0; }



Z tego co pamiętam, to C nie zezwala na deklarację licznika w samej konstrukcji for. Tak więc proponuję zmienną i zadeklarować przed pętlą, a w pętli ją tylko zainicjować i=0;
Program ma coś czytać z pliku, ale nie wiem jakiego, więc nie wiem, czy to, że coś mi się wypisało dziwnego to już sukces, czy dopiero początek problemu....

zmienilem deklaracje int i ale rowniez nie dziala program ma obslugiwac pliki tekstowe .txt a w tym programie po podaniu nazwy plikujeli istnieje pojawiaja sie 2 znaczki jeden to znak backspace. a drugir program ma czytac wypiswyac z zapisywac do plikow binarnych.

#include<stdio.h> #define MAX 1000 double Tablica[MAX]; int N; void czytaj(FILE *f) { fscanf(f,"%d", &N); int i; double t; for(i=0; i<N; i++){ fscanf(f,"%lf", &t); Tablica[i]=t; } } void wypisz(FILE *f) {     int i=0;     for(;i<N;i++) fprintf(f,"%lf ",Tablica[i]); } int main() { char nazwa[100]; FILE *we; printf("podaj nazwe pliku:"); scanf("%99s",nazwa); we=fopen(nazwa,"r"); if(we==NULL) { printf("brak pliku\n"); return 0; } czytaj(we); wypisz(stdout); fclose(we); //system("pause"); return 0; }

Po drobnych przeróbkach program robi rzeczy, o których wspominałeś. Istotny jest format pliku do odczytu: pierwsza jest liczba określająca ile jeszcze liczb jest w pliku np:
4 12 14.345 15 16.19

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •