Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Podobne dokumenty
Programowanie w językach wysokiego poziomu

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak

Funkcje zawarte w bibliotece < io.h >

Argumenty wywołania programu, operacje na plikach

Funkcje zawarte w bibliotece < io.h >

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Programowanie Proceduralne

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Biblioteka standardowa - operacje wejścia/wyjścia

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

INFORMATYKA Studia Niestacjonarne Elektrotechnika

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Podstawy programowania w języku C++

INSTRUKCJE REPETYCYJNE PĘTLE

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Zasady programowania Dokumentacja

Tablice, funkcje - wprowadzenie

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

Wstęp do programowania 1

4. Tablica dwuwymiarowa to jednowymiarowa tablica wskaźników do jednowymiarowych tablic danego typu.

ŁAŃCUCHY W JĘZYKU C/C++

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Podstawy programowania C. dr. Krystyna Łapin

main() { float promien=p,wysokosc=h,objetosc; float objetosc_walca(float promien, float wysokosc);

Laboratorium Podstaw Informatyki Strona 1. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 2. Funkcje, operatory i wyrażenia.

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Wstęp do programowania 1

Pobieranie argumentów wiersza polecenia

Część 4 życie programu

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

struct Student { char nazwisko[30]; int wiek; float ocena; }; #define MAX_ROZMIAR 3 Student lista_studentow[max_rozmiar];

INSTRUKCJE REPETYCYJNE PĘTLE

Programowanie w językach

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

Programowanie Procedurale. Pliki w języku C++

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Co nie powinno być umieszczane w plikach nagłówkowych:

7 Przygotował: mgr inż. Maciej Lasota

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Wykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Podstawy programowania w języku C++

1. Wprowadzanie danych z klawiatury funkcja scanf

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Tablice deklaracja, reprezentacja wewnętrzna

MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników

Programowanie strukturalne i obiektowe

część 4 biblioteka standardowa wejścia - wyjścia znakowe wejście - wyjście Jarosław Gramacki Instytut Informatyki i Elektroniki

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

tablica: dane_liczbowe

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Tablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2

Programowanie Proceduralne

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

// Funkcja glowna int main() { // zmienne int kont='t'; double x1, y1, x2, y2, x3, y3, a, b, c, p1, p2, p3, pole, ha, hb, hc;

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Funkcja (podprogram) void

Wykład 5_2 Algorytm ograniczania liczby serii za pomocą kopcowego rozdzielania serii początkowych

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

Reprezentacja symboli w komputerze.

Operacje wejścia/wyjścia (odsłona druga) - pliki

Podstawy programowania w języku C++

Łańcuchy znaków. Agnieszka Nowak - Brzezińska

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie i struktury danych

Języki programowania. Karolina Mikulska-Rumińska Pokój 573, tel Konsultacje wtorek 9-10.

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Informatyka programowanie w języku C część II. dr hab. inż. Mikołaj Morzy

Podstawy programowania 1

Struktury czyli rekordy w C/C++

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

2 Przygotował: mgr inż. Maciej Lasota

Transkrypt:

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24

Pisanie pojedynczych znaków z klawiatury do pliku #include <conio.h> void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt char ch; fptr = fopen("textfile.txt","w"); // otwarcie pliku while ( (ch = getche())!= '\r' ) // pobranie znaku //jeśli to nie CR (powrót karetki) fputc(ch,fptr); // pisanie znaku do pliku fclose(fptr); // zamkniecie pliku 2 /24

Program czyta kolejne znaki z pliku tekstowego #include <conio.h> void main(void) { FILE *fptr; // uchwyt do pliku wejściowego int ch; fptr = fopen("textfile.txt","r"); // otwarcie pliku while( (ch = fgetc(fptr))!= EOF ) // pobranie znaku z pliku printf("%c", ch); // wyświetlanie znaku fclose(fptr); // zamkniecie pliku getch(); clrscr(); //sprzątanie 3 /24

#include <stdlib.h> int main(void) { FILE *fptr; int ch; Błąd otwarcia pliku if ( (fptr = fopen("zlyplik.txt","r")) == NULL ) // zwraca wartość całkowita // plik nie istnieje { printf("\n Nie mogę otworzyć pliku zlyplik.txt txt."); exit(1); // zwrot numeru błędu while( (ch = getc(fptr))!= EOF ) printf("%c", ch); fclose(fptr); return (0); // pobierz znak z pliku // i wyświetl go // zamknij plik // powrót bez błędu 4 /24

Zliczanie ilości znaków w pliku #include <stdlib.h> int main( int argc, char *argv[ ] ) { FILE *fptr; int count=0; if (argc!= 2) // sprawdzenie liczby argumentów { printf("\n Wywołanie z argumentem nazwa_pliku"); exit(1); if ( (fptr = fopen(argv[1], "r")) == NULL) // otwarcie pliku { printf("\n Nie mogę otworzyć pliku %s.", argv[1]); exit(1); while( fgetc(fptr)!= EOF ) // pobierz znak z pliku count++; // zliczaj fclose(fptr); // zamknij plik printf("\nplik %s zawiera %d znaków.", argv[1], count); return (0); 5 /24

Pisanie do pliku całych linii tekstu z klawiatury #include <string.h> void main(void) { FILE *fptr; // uchwyt do pliku char string[81]; // bufor łańcuchów fptr = fopen("user.txt", "w"); // otwórz plik while (strlen( gets(string) ) > 0) // pobierz łańcuch z klawiatury { fputs(string, fptr); // pisz znak do pliku fclose(fptr); fputs("\n", fptr); // pisz znak nowej linii do pliku // zamknij plik 6 /24

Czytanie łańcuchów z pliku // for standard I/O #include <conio.h> void main(void) { FILE *fptr; // uchwyt do pliku char string[81]; // bufor łańcuchów fptr = fopen("user.txt", "r"); // otwarcie pliku while ( fgets(string, 80, fptr)!= NULL ) // czytanie łańcucha printf("%s", string); // wyświetlanie łańcucha fclose(fptr); getch(); clrscr(); // zamkniecie pliku 7 /24

Drukowanie pliku (listingu) na drukarce #include <stdlib.h> int main( int argc, char *argv[ ] ) { FILE *fptr; char string[81]; if (argc!= 2) { printf("\n Wywołanie z argumentem nazwa_pliku"); exit(1); if ( (fptr = fopen(argv[1], "r")) == NULL) { printf("\n Nie można otworzyć pliku: %s.", argv[1]); exit(1); while( fgets(string, 80, fptr)!= NULL ) // czytaj łańcuch { fputs(string, stdprn); // wyślij do drukarki putc('\r', stdprn); // ze znakiem ENTER fclose(fptr); return (0); 8 /24

Pisanie sformatowanych danych do pliku #include <string.h> void main(void) { FILE *fptr; char nazwisko[40]; int identyfikator; float wzrost; fptr = fopen("lista.txt", "w"); do // nazwisko // identyfikator // otwórz plik { printf("napisz nazwisko, identyfikator i wzrost: "); scanf("%s %d %f", nazwisko, &identyfikator, &wzrost); fprintf(fptr, "%s %d %f", nazwisko, identyfikator, wzrost); while (strlen(nazwisko) > 1); // nie podano nazwy fclose(fptr); // zamknij plik 9 /24

#include <stdlib.h> #include <conio.h> #define LENGTH 10 #define TRUE 1 #define FALSE 0 int main( int argc, char *argv[ ] ) { FILE *fileptr; int ch, j, not_eof; Binarne wyświetlanie pliku unsigned char string[length+1]; // bufor if (argc!= 2) // jest argument? { printf("wywolaj z nazwapliku"); exit(1); // czytanie binarne if ( (fileptr = fopen(argv[1],"rb"))==null ) { printf("nie można otworzyć pliku %s", argv[1]); exit(1); not_eof = TRUE; do // flaga EOF { for (j = 0; j < LENGTH; j++) // znaki jednej linii { if( (ch = getc(fileptr)) == EOF ) // czyta znak not_eof = FALSE; // zeruj flagę EOF if (ch > 31) printf("%3x ", ch); // wyświetl ASCII *(string+j) = ch; // zapamiętaj znak drukowalny *(string+j) = '\0'; else // użyj kropki zamiast znaku *(string+j) = '.'; // koniec łańcucha printf(" %s\n", string); // wyświetlaj łańcuch while (not_eof == TRUE); // zakończ jeśli EOF fclose(fileptr); getch(); clrscr(); return (0); // zamknij plik 10 /24