fork download
  1. #include <fstream>
  2. #include <iomanip>
  3. #include <iostream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. /*
  11.   Zadanie 1
  12.   Wczytać plik "text.txt" i zliczyć:
  13.   a) ilość zdań
  14.   b) ilość słów
  15.   c) ilość znaków
  16.   */
  17.  
  18. ifstream plik_we; // deklaracja strumienia pliku wejściowego
  19. string linia; // zmienna przechowująca pojedynczą linię z pliku
  20. int zdania = 0; // liczniki
  21. int slowa = 0;
  22. int znaki = 0;
  23.  
  24. int linia_len; // długość linii
  25.  
  26. plik_we.open("D:\\C++\\text.txt"); // otwarcie strumienia
  27.  
  28. if (plik_we.is_open()) // jeżeli plik jest otwarty
  29. {
  30. while (getline(plik_we, linia)) // wczytaj linię to zmiennej
  31. {
  32. linia_len = linia.length(); // ustaw długość linii
  33. znaki += linia_len; // ustaw ilość znaków
  34.  
  35. for (int i = 0; i < linia_len; i++) // pętla po znaku w linii
  36. {
  37. if (linia[i] == ' ') // spacja rozdziela słowa
  38. {
  39. slowa++;
  40. }
  41. else if (linia[i] == '.') // kropka rozdziala zdania
  42. {
  43. zdania++;
  44. }
  45. }
  46. }
  47.  
  48. cout << "zdania: " << zdania << endl; // wypisz liczniki
  49. cout << "slowa: " << slowa << endl;
  50. cout << "znaki: " << znaki << endl << endl;
  51. }
  52. else // jeżeli plik nie został otwary pokaż błąd
  53. {
  54. perror("Blad otwarcia pliku"); // perror zwraca nazwę błędu po argumencie
  55. }
  56.  
  57. plik_we.close(); // zamykamy strumień
  58.  
  59. /*
  60.   Zadanie 2
  61.   Utworzyć strukturę Produkt o polach nazwa, cena i producent.
  62.   Program główny tworzy tablicę dynamiczną n produktów.
  63.   */
  64.  
  65. struct Produkt // struktura lokalna wewnątrz funkcji
  66. {
  67. string nazwa; // jej pola
  68. double cena;
  69. string producent;
  70.  
  71. void wyswietl() // funkcja wyświetlająca pola
  72. {
  73. cout << nazwa << " " << cena << " " << producent << endl;
  74. }
  75. };
  76.  
  77. int n; // ilość produktów
  78. cout << "n: "; cin >> n;
  79.  
  80. Produkt *Produkty = new Produkt[n]; // dynamiczna tablica produktów (w postaci sterty)
  81.  
  82. for (int i = 0; i < n; i++) // funkcja po produkcie
  83. {
  84. cout << "Produkt " << i + 1 << endl;
  85. cout << "Nazwa: "; cin >> Produkty[i].nazwa; // podajemy dane każdego produktu
  86. cout << "Cena: "; cin >> Produkty[i].cena;
  87. cout << "Producent: "; cin >> Produkty[i].producent;
  88.  
  89. Produkty[i].wyswietl(); // wyświetlenie produktu
  90. }
  91.  
  92. delete[] Produkty; // usunięcie (zwolnienie pamięci) tablicy dynamicznej
  93.  
  94. /*
  95.   Zadanie 3
  96.   Wczytać z pliku 20 liczb całkowitych i posortować dowolną metodą
  97.   */
  98.  
  99. plik_we.open("D:\\C++\\liczby.txt"); // ponowne otwarcie strumienia
  100.  
  101. int liczby[20]; // deklaracja tablicy liczb
  102. int i = 0; // indeks dla tablicy liczb
  103. int temp; // tymczasowa zmienna używana podczas sortowania
  104.  
  105. if (plik_we.is_open())
  106. {
  107. while (plik_we >> liczby[i]) // pobierz liczbę do tablicy
  108. {
  109. cout << setw(3) << liczby[i];
  110. i++; // inkrementuj indeks
  111. }
  112.  
  113. cout << endl;
  114.  
  115. for (int i = 0; i < 20; i++) // pętla po indeksach od i = 0
  116. {
  117. for (int j = i; j < 20; j++) // pętla po indeksach od j = i
  118. {
  119. if (liczby[j] < liczby[i]) // jeżeli kolejny element jest mniejszy to
  120. {
  121. temp = liczby[i]; // zamień elementy ze sobą
  122. liczby[i] = liczby[j];
  123. liczby[j] = temp;
  124. }
  125. }
  126. }
  127.  
  128. for (int i = 0; i < 20; i++) // wyświetlanie tablicy
  129. {
  130. cout << setw(3) << liczby[i];
  131. }
  132. }
  133. else
  134. {
  135. perror("Blad otwarcia pliku");
  136. }
  137.  
  138. plik_we.close(); // zamknięcie strumienia
  139.  
  140. return 0;
  141. }
Success #stdin #stdout #stderr 0s 3280KB
stdin
Standard input is empty
stdout
n: 
stderr
Blad otwarcia pliku: No such file or directory
Blad otwarcia pliku: No such file or directory