Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.03.2020
Сообщений: 13

Не могу понять в чем ошибка. Каналы

21.05.2020, 16:15. Показов 833. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот задание:
Разработать две программы – сервер и клиент. Клиент отсылает серверу через неименованный канал введенную пользователем строку, хранящую знаковое целое число. Сервер принимает из почтового ящика строку, хранящую знаковое целое число, и выводит на экран строковый эквивалент этого числа прописью.
Клиент:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#define FIFO_NAME "./fifofile"
int main(int argc, char * argv[])
{
FILE * f;
//char ch;
int k;
mkfifo(FIFO_NAME, 0600);
f = fopen(FIFO_NAME, "w");
if (f == NULL)
{
printf("Error open file\n");
return -1;
}
printf ("Type some number for sending to client\n");
printf ("Type 0 for exit\n");
do
{
scanf("%d", &k);
fputc(k, f);
if (k == 10) fflush(f);
} while (k != 0);
fclose(f);
unlink(FIFO_NAME);
return 0;
}
Сервер:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <unistd.h>
#define FIFO_NAME "./fifofile"
 
void per(int a){
        switch (a / 100){
            case 1:  printf("сто "); break;
            case 2: printf("двести "); break;
            case 3: printf("триста "); break;
            case 4: printf("четыреста "); break;
            case 5: printf("пятсот "); break;
            case 6: printf("шестьсот "); break;
            case 7: printf("семьсот "); break;
            case 8: printf("восемьсот "); break;
            case 9: printf("девятьсот "); break;
        }
        switch ((a % 100) / 10){
            case 2: printf("двадцать "); break;
            case 3: printf("тридцать "); break;
            case 4: printf("сорок "); break;
            case 5: printf("пятдесят "); break;
            case 6: printf("шестьдесят "); break;
            case 7: printf("семьдесят "); break;
            case 8: printf("восемьдесят "); break;
            case 9: printf("девяносто "); break;
        }
        if (a % 100 >= 10 && a % 100 < 20){
            switch (a % 100){
                case 10: printf("десять"); break;
                case 11: printf("одинадцать"); break;
                case 12: printf("двенадцать"); break;
                case 13: printf("тринадцать"); break;
                case 14: printf("четырнадцать"); break;
                case 15: printf("пятнадцать"); break;
                case 16: printf("шестнадцать"); break;
                case 17: printf("семнадцать"); break;
                case 18: printf("восемнадцать"); break;
                case 19: printf("девятнадцать"); break;
            }
        }else{
            switch (a % 10){
                case 0: printf("ноль\n"); break;
                case 1: printf("один\n"); break;
                case 2: printf("два\n"); break;
                case 3: printf("три\n"); break;
                case 4: printf("четыре\n"); break;
                case 5: printf("пять\n"); break;
                case 6: printf("шесть\n"); break;
                case 7: printf("семь\n"); break;
                case 8: printf("восемь\n"); break;
                case 9: printf("девять\n"); break;
            }
        }
    }
 
int main ()
{
FILE * f;
//char ch;
int k;
printf ("Start client and wait for server messages...\n");
f = fopen(FIFO_NAME, "r");
do
{
k = fgetc(f);
per(k);
} while (k != 0);
fclose(f);
unlink(FIFO_NAME);
return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2020, 16:15
Ответы с готовыми решениями:

Найти сумму квадратов четных чисел натурального ряда от 1 до N на С++. Не могу разобраться! Не могу понять в чём ошибка
Помогите пожалуйста) Вот мой код: #include &lt;iostream&gt; using namespace std; int main() { int N, sum =0, step; ...

Не могу понять в чём ошибка
Вот класс: public class ControllerMainMenu { @FXML public static SplitMenuButton ChoiceRe; static int Time; static int...

Не могу понять в чем ошибка
написать программу в CodeBlocks, никак не могу понять в чем ошибка. Найти периметр эллипса по двум радиусам. #include &lt;iostream&gt;...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2020, 16:15
Помогаю со студенческими работами здесь

Не могу понять в чем ошибка
#include &lt;graphics.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { int gdriver = DETECT, gmode; ...

Не могу понять в чем ошибка
Не так давно я начала готовиться к олемпиаде по программированию,но от чего-то я не могу написать программку дома,хотя вот когда я переношу...

Не могу понять, в чем ошибка
1 #include &lt;iostream&gt; 2 using namespace std; 3 int main (){ 4 setlocale (0, &quot;&quot;); 5 // Âûâîäèòñÿ ñîîáùåíèå 6 std::cout &lt;&lt; &quot;ß...

Не могу понять в чем ошибка
Здрасте!!! Тока начал изучать язык php. Изучал по урокам Попова, но зашел в тупик. Установил denwer, выложил свои данные в базу данных....

Не могу понять в чем ошибка
Не могу понять, где ошибка. Помогите, пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru