matematykaszkolna.pl
programowanie C julq: programowanie C Witam, mam takie polecenie, nie wiem w sumie czy do końca jest ono poprawnie sformułowane: − Napisz program ktory otworzy plik i zapisze i odczyta z niego znak pomoże ktoś? to ma być taki krótki przykładowy programik
5 cze 17:00
Mateusz: Ma to byc program w C czy C++ jak w C to go tam za bardzo nie pamietam ale zrobie ci analog w pascalu a ty sobie go przetłumaczysz na C czy tam na inny: Program przykl; var znak:char; tekst:text; i:byte; begin writeln('Napisz jakikolwiek znak'); readln(znak); assign(tekst,'tekst.txt'); append(tekst); writeln(tekst,znak); close(tekst); reset(tekst); writeln('Wypisanie danych z pliku:'); while not eof(tekst) do begin read(tekst,znak); writeln(znak) end; close(tekst); readln; end. opis: znak−zmienna typu znakowego tekst−zmienna plikowa text−predefiniowany plik tekstowy assign−skojarzenie zmiennej plikowej z fizycznym plikiem na dysku reset−otwiera istniejący na dysku plik tylko do odczytu(czyli plik musisz sam wczesniej utworzyć przed kompilacją) append−otwiera plik i umozliwia dopisanie danych na koniec pliku eof−funkcja zwraca prawde−true gdy plik znajduje sie w pozycji przed ostatnim znakiem pliku tj ctrl−z lub gdy plik nie zawiera zadnych elementów read−procedura wyprowadza z otwartego pliku dane ktore są przypisane drugiemu parametrowi tj zmiennej w programie u nas znak close−zamkniecie pliku ty robisz teraz analog np w c++ zeby działac na plikach trzeba zadeklarowac plik nagłówkowy #include<fstream> ofstream−otwarcie pliku itd
5 cze 18:25
julq: To ma być czyste C, zrobiłem coś takiego: #include<stdio.h> main() { file *fp1; char znak; fp1=fopen("myfile.txt","w") while((znak=getchar())!=EOF) { putc(znak,fp1); } fclose(fp1); fp1=fopen("myfile.txt","r") while((znak=getc(fp1))!=EOF) { printf("%c",znak) } fclose(fp1); } hmm ?
5 cze 18:34
Mateusz: No to tu ci nie pomoge niestety ja C miałem pare razy moze a nigdy go nie wykorzystywałem i raczej nie wykorzystam jak sie siedzi cały czas w IV generacji czasem zejdzie do drugiej (bo jest taka potrzeba). Ale probuj wg takiego schematu jaki ci podałem w tym przykładowym programie ewentualnie uzytkownik Trivial ci pomoze on prędzej zna język C.
5 cze 18:47
Trivial: Osobiście nie rozumiem polecenia. Twój program wygląda dobrze, poprawiłem drobne błędy: #include <stdio.h> int main(void) { FILE *fp1; char znak; fp1 = fopen("dane.txt", "w"); while ((znak = getchar()) != EOF) putc(znak, fp1); fclose(fp1); fp1 = fopen("dane.txt", "r"); while ((znak = getc(fp1)) != EOF) printf("%c", znak); fclose(fp1); return 0; }
6 cze 00:36