#include <cstdio>
#include <cstdlib> // тут функції перетворення рядків цифр в числа
#include <iostream>
using namespace std;
/****************************************************************
*
* Призначення: Демонстрація функцій 'atof' та 'gets' на прикладі
* введення, перетворення та множення двох чисел.
* Дата: 16/05/2010
*
****************************************************************/
int main(){
char str1[80], str2[80]; /* пара змінних для введення 2 чисел */
double result; /* а це для результату */
puts (" This program will multiply two floating point numbers .");
/* вводимо обидва числа */
puts (" Please enter the first number .");
gets( str1 );
puts (" And the second.");
gets( str2 );
/* перетворюємо рядкові значення в числові і перемножуємо */
result = atof( str1 ) * atof( str2 );
/* результат -> в рядок з форматом: всього 8 позицій (2 після коми) */
printf("Answer is %8.2f\n ", result );
/* затримаємо виконання */
getchar();
return 0;
}
Завдання:Поекспериментуйте з програмою, перевірте, що буде, коли ви введете замість цифр букви.
Програма 7.
# include <string>
#include <cstdio>
#include <cstdlib> // тут функції перетворення рядків цифр в числа
int main(){
// сюда занесемо послідовність символів
char str[255];
// символів - не більше 256
const int size_counter = 256;
// масив-лічильник символів заповнимо нулями
int counter[size_counter] = {0};
int i;
puts ("Enter a string:");
gets (str);
// переглядаємо str поки не наткнемось на нуль-символ
for (i = 0; str[i]; i++)
// str[i] - це код символа в рядку на i-му місці
// збільшуємо на 1 вміст лічильника що відповідає символу
counter[str[i]]++;
/* переглядаємо лічильник */
for(i = 0; i < size_counter; i++)
// і виводимо вміст ненульових байтів
if(counter[i])
// %3c - виведення символа, %d - виведення числа
printf("%3c - %d\n", i,counter[i]);
gets(str);
return 0;
}
Модифікуйте програму так, щоб вона сприймала тільки коди цифрових клавіш
Рекомендації:
· Створіть підпрограму, що сприймає рядки символів а повертає числа.
· Вводьте числа посимвольно (getchar()) в неперервному циклі.
· Для контролю натиснутої клавіші використайте функцію isdigit(sym).
· Накопичуйте числові символи поки не буде натиснуто клавішу пробіл
Програма 8.
Робота з файлами
// Ввод символов с клавиатуры и занесение в поток
#include <cstdio>
int main (){
FILE *f; // это указатель на буфер обмена
char sym; // сюда заносим символ с клавиатуры
// запрашиваем адрес файлового буфера и связываем его с "tenlines.txt"
f = fopen ("tenlines.txt","wt");
do {
// получение символа с клавиатуры
sym = getchar ();
// занесение символа в файл
putc (sym,f);
} while (sym!= '\n'); // пока не нажмете ENTER ('\n')
fclose (f);
return 0;
}
Примечание: во всех примерах с файлами проверяйте содержимое файла tenlines.txt