- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
//код компилируйте clang-ом, иначе не закомпилится
int main(int argc, char *argv[])
{
if(argc != 2) {
printf("Укажите способ (1,2)\n");
_exit(1);
}
int способ = atoi(argv[1]);
int ch;
switch(способ)
{
case 1:
{
while( (ch=getchar()) != EOF ) {
printf("%i", ch);
}
break;
}
case 2:
{
int twoch;
char arr[2];
int new;
while( (ch=getchar()) != EOF ) {
twoch = getchar();
if(twoch == EOF) break;
sprintf(arr, "%c%c", (char)ch, (char)twoch);
new = atoi(arr);
printf("%c", new); //попытка не пытка
}
break;
}
default:
printf("Неизвестный способ\n");
}
return 0;
}
FrauSchweinhund 17.10.2017 10:37 # 0
Antervis 17.10.2017 10:50 # 0
Psionic 17.10.2017 14:43 # 0
1024-- 17.10.2017 19:05 # 0
Почему? Русские идентификаторы и unistd.h мешают?
inho 17.10.2017 19:14 # +2
P.S. Ах да, где здесь C++, inho?
1024-- 17.10.2017 19:44 # 0
inkanus-gray 17.10.2017 20:32 # 0
Psionic 19.10.2017 18:49 # +1
Antervis 19.10.2017 22:22 # 0
SemaReal 19.10.2017 22:25 # 0
Antervis 19.10.2017 22:39 # 0
Другими словами, компилятор выдаст тебе latin1 только вместе со всеми остальными локализованными программами
SemaReal 19.10.2017 22:45 # 0
странно что cl таков
inkanus-gray 19.10.2017 23:13 # +3
У msbuild вообще кодировка выхлопа в каждой версии разная.
У некоторых утилит шапка выхлопа и основное сообщение могут быть в разных кодировках.
SemaReal 20.10.2017 00:09 # +2
Правда если msbuild пишет через CRTшные функции printf/wprintf то тогда понятно в чем проблема.
У MS эти функции конвертят аутпут в однобайтовую кодировку. Треба юзати WriteConsole.
Вообще заметил что у MS все CRT функции работают крайне хуёво.
bormand 20.10.2017 21:54 # 0
Оно уже научилось в файл/пайп редиректиться?
SemaReal 20.10.2017 23:35 # 0