Witam
Bardzo bym prosił o pomoc w pracy domowej.
Mam napisać program w C który wczytane z pliku liczby całkowite będzie wypisywał do innego pliku w odwrotnej kolejności cyfr(wspak)
Mógł by mi to kotś rozwiązać albo dokładnie wytłumaczyć.
Nie potrafię tych liczb wczytać z pliku i potem je zapisać, oraz nie jestem pewny czy ten algorytm ma zapisywać kązdą liczbę od tylu czy wszystkie razem. Chodzi mi, czy np. z ciągu liczb 123 435 214 90 4 43 1 2 otrzymam 321 535 412 09 4 34 1 2 czy liczbę 2 1 34 4 09 412 321
Najlepsze by było wytłumaczenie krok po kroku albo jakiś program do samoodzielnego przeanalizowania
Z góry dziękuje za pomoc
Wczytywanie i zapisywanie do pliku liczb
Rozpoczęty przez P10D, 29 gru 2012 08:03
5 odpowiedzi w tym temacie
#1
Napisano 29 grudzień 2012 - 08:03
#2
Napisano 29 grudzień 2012 - 12:17
Czytanie i pisanie do plików
Wczytywanie z pliku danych
Co do odwracania to skąd mamy wiedzieć, dopytaj profesora o co mu dokładnie chodzi Na razie zrób tak jak uważasz, powiesz potem, że tak zrozumiałeś polecenie
Wczytywanie z pliku danych
Co do odwracania to skąd mamy wiedzieć, dopytaj profesora o co mu dokładnie chodzi Na razie zrób tak jak uważasz, powiesz potem, że tak zrozumiałeś polecenie
#3
Napisano 12 styczeń 2013 - 20:32
#include <stdio.h> #include <stdlib.h> #define CNTL_Z '\032' #define N 50 /* N oznacza liczbę znaków w pliku tekstowym */ int main(void) { char plik[N]<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> char ch; FILE *wp; long licznik, koniec; printf("Podaj nazwe pliku (uwaga: mniej niż %d znaki):\n", N)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> scanf("%s", plik)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> if ((wp = fopen(plik,"rb")) == NULL) { /* tryb binarny tylko do odczytu */ printf("Nie moge otworzyc %s\n", plik)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> exit(1)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> } fseek(wp, 0L, SEEK_END)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> /* przejdz do konca pliku */ koniec = ftell(wp)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> for (licznik = 1L; licznik <= koniec; licznik++) { fseek(wp, -licznik, SEEK_END)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> /* idz do tylu */ ch = getc(wp)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> } putchar('\n')<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' /> }
#4
Napisano 12 styczeń 2013 - 20:52
Program mi wczytuje i zapisuje na ekran ale nie wiem jak dalej zapisac w innym pliku
#5
Napisano 12 styczeń 2013 - 21:28
1. Stworzyć nowy uchwyt na plik z możliwością zapisu
2. Zapisywać znak po znaku
3. Zamknąć plik
Wszystkie funkcje znajdziesz w gugle i jest ich naprawdę mnóstwo (fwrite, fputc i wiele innych).
Dla upartych w pkt 2 można nawet zastosować funkcję systemową dup2(), której odpowiednie użycie przekieruje standardowe wyjście (konsola) na plik (linux only). Wtedy tylko wypisujesz na konsole a dane magicznie lecą na plik.
2. Zapisywać znak po znaku
3. Zamknąć plik
Wszystkie funkcje znajdziesz w gugle i jest ich naprawdę mnóstwo (fwrite, fputc i wiele innych).
Dla upartych w pkt 2 można nawet zastosować funkcję systemową dup2(), której odpowiednie użycie przekieruje standardowe wyjście (konsola) na plik (linux only). Wtedy tylko wypisujesz na konsole a dane magicznie lecą na plik.
Użytkownicy przeglądający ten temat: 2
0 użytkowników, 2 gości, 0 anonimowych