Програма 6
#include <cstdio>
#include<cstdlib> // тут функції перетворення рядків цифр в числа
#include<iostream>
using namespacestd;
/****************************************************************
*
* Призначення: Демонстрація функцій 'atof' та 'gets' на прикладі
* введення, перетворення та множення двох чисел.
* Дата: 16/05/2010
*
****************************************************************/
intmain(){
charstr1[80], str2[80]; /* пара змінних для введення 2 чисел */
doubleresult;/* а це для результату */
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