ݺߣ

ݺߣShare a Scribd company logo
Программирование на языке C++
Лекция 2
Строки и ввод-вывод
Александр Смаль
1/8
Строковые литералы
∙ Строки — это массивы символов типа char,
заканчивающиеся нулевым символом.
// массив ’H’, ’e’, ’l’, ’l’, ’o’, ’0’
char s[] = "Hello";
∙ Строки могут содержать управляющие
последовательности:
1. n — перевод строки,
2. t — символ табуляции,
3.  — символ ’’,
4. " — символ ’"’,
5. 0 — нулевой символ.
cout << "List :nt- C,nt- C++.n";
2/8
Работа со строками в стиле C
∙ Библиотека cstring предлагает множество функций для
работы со строками (char *).
char s1 [100] = "Hello";
cout << strlen(s1) << endl; // 5
char s2[] = ", world!";
strcat(s1 , s2);
char s3[6] = {72, 101, 108, 108, 111};
if (strcmp(s1 , s3) == 0)
cout << "s1 == s3" << endl;
∙ Работа со строками в стиле C предполагает кропотливую
работу с ручным выделением памяти.
3/8
Работа со строками в стиле C++
Библиотека string предлагает обёртку над строками, которая
позволяет упростить все операции со строками.
#include <string >
using namespace std;
int main () {
string s1 = "Hello";
cout << s1.size () << endl; // 5
string s2 = ", world!";
s1 = s1 + s2;
if (s1 == s2)
cout << "s1 == s2" << endl;
return 0;
}
4/8
Ввод-вывод в стиле C
∙ Библиотека cstdio предлагает функции для работы со
стандартным вводом-выводом.
∙ Для вывода используется функция printf:
#include <cstdio >
int main () {
int h = 20, m = 14;
printf("Time: %d:%dn", h, m);
printf("It’s %.2f hours to midnightn",
((24 - h) * 60.0 - m) / 60);
return 0;
}
5/8
Ввод-вывод в стиле C
∙ Библиотека cstdio предлагает функции для работы со
стандартным вводом-выводом.
∙ Для ввода используется функция scanf:
#include <cstdio >
int main () {
int a = 0, b = 0;
printf("Enter a and b: ");
scanf("%d %d", &a, &b);
printf("a + b = %dn", (a + b));
return 0;
}
∙ Ввод-вывод в стиле C достаточно сложен и небезопасен
(типы аргументов не проверяются). 6/8
Ввод-вывод в стиле C++
∙ В C++ ввод-вывод реализуется через библиотеку iostream.
#include <string >
#include <iostream >
using namespace std;
int main () {
string name;
cout << "Enter your name: ";
cin >> name; // считывается слово
cout << "Hi , " << name << endl;
return 0;
}
∙ Реализация ввода-вывода в стиле C++ типобезопасна.
7/8
Работа с файлами в стиле C++
∙ Библиотека fstream обеспечивает работу с файлами.
#include <string >
#include <fstream >
using namespace std;
int main () {
string name;
ifstream input("input.txt");
input >> name;
ofstream output("output.txt");
output << "Hi , " << name << endl;
return 0;
}
∙ Файлы закроются при выходе из функции. 8/8

More Related Content

2.8 Строки и ввод-вывод

  • 1. Программирование на языке C++ Лекция 2 Строки и ввод-вывод Александр Смаль 1/8
  • 2. Строковые литералы ∙ Строки — это массивы символов типа char, заканчивающиеся нулевым символом. // массив ’H’, ’e’, ’l’, ’l’, ’o’, ’0’ char s[] = "Hello"; ∙ Строки могут содержать управляющие последовательности: 1. n — перевод строки, 2. t — символ табуляции, 3. — символ ’’, 4. " — символ ’"’, 5. 0 — нулевой символ. cout << "List :nt- C,nt- C++.n"; 2/8
  • 3. Работа со строками в стиле C ∙ Библиотека cstring предлагает множество функций для работы со строками (char *). char s1 [100] = "Hello"; cout << strlen(s1) << endl; // 5 char s2[] = ", world!"; strcat(s1 , s2); char s3[6] = {72, 101, 108, 108, 111}; if (strcmp(s1 , s3) == 0) cout << "s1 == s3" << endl; ∙ Работа со строками в стиле C предполагает кропотливую работу с ручным выделением памяти. 3/8
  • 4. Работа со строками в стиле C++ Библиотека string предлагает обёртку над строками, которая позволяет упростить все операции со строками. #include <string > using namespace std; int main () { string s1 = "Hello"; cout << s1.size () << endl; // 5 string s2 = ", world!"; s1 = s1 + s2; if (s1 == s2) cout << "s1 == s2" << endl; return 0; } 4/8
  • 5. Ввод-вывод в стиле C ∙ Библиотека cstdio предлагает функции для работы со стандартным вводом-выводом. ∙ Для вывода используется функция printf: #include <cstdio > int main () { int h = 20, m = 14; printf("Time: %d:%dn", h, m); printf("It’s %.2f hours to midnightn", ((24 - h) * 60.0 - m) / 60); return 0; } 5/8
  • 6. Ввод-вывод в стиле C ∙ Библиотека cstdio предлагает функции для работы со стандартным вводом-выводом. ∙ Для ввода используется функция scanf: #include <cstdio > int main () { int a = 0, b = 0; printf("Enter a and b: "); scanf("%d %d", &a, &b); printf("a + b = %dn", (a + b)); return 0; } ∙ Ввод-вывод в стиле C достаточно сложен и небезопасен (типы аргументов не проверяются). 6/8
  • 7. Ввод-вывод в стиле C++ ∙ В C++ ввод-вывод реализуется через библиотеку iostream. #include <string > #include <iostream > using namespace std; int main () { string name; cout << "Enter your name: "; cin >> name; // считывается слово cout << "Hi , " << name << endl; return 0; } ∙ Реализация ввода-вывода в стиле C++ типобезопасна. 7/8
  • 8. Работа с файлами в стиле C++ ∙ Библиотека fstream обеспечивает работу с файлами. #include <string > #include <fstream > using namespace std; int main () { string name; ifstream input("input.txt"); input >> name; ofstream output("output.txt"); output << "Hi , " << name << endl; return 0; } ∙ Файлы закроются при выходе из функции. 8/8