Skocz do zawartości


Zdjęcie

Wczytywanie i zapisywanie do pliku liczb


  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 P10D

P10D
  • Użytkownicy
  • 4 postów

Napisano 29 grudzień 2012 - 08:03

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
  • 0


#2 magik092

magik092
  • Użytkownicy
  • 1555 postów

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 :P Na razie zrób tak jak uważasz, powiesz potem, że tak zrozumiałeś polecenie ^^
  • 1

Dołączona grafika


#3 P10D

P10D
  • Użytkownicy
  • 4 postów

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=';' />

    

 

   }


  • 0

#4 P10D

P10D
  • Użytkownicy
  • 4 postów

Napisano 12 styczeń 2013 - 20:52

Program mi wczytuje i zapisuje na ekran ale nie wiem jak dalej zapisac w innym pliku
  • 0

#5 ~janusz

~janusz
  • Użytkownicy
  • 238 postów

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.
  • 0

#6 jarex_67

jarex_67
  • Użytkownicy
  • 151 postów

Napisano 29 sierpień 2017 - 18:23

Spróbuj tutaj jest fajne szkolenie http://geek-on.pl :)


  • 0


Użytkownicy przeglądający ten temat: 2

0 użytkowników, 2 gości, 0 anonimowych