- 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;
}
Почему? Русские идентификаторы и unistd.h мешают?
P.S. Ах да, где здесь C++, inho?
Другими словами, компилятор выдаст тебе latin1 только вместе со всеми остальными локализованными программами
странно что cl таков
У msbuild вообще кодировка выхлопа в каждой версии разная.
У некоторых утилит шапка выхлопа и основное сообщение могут быть в разных кодировках.
Правда если msbuild пишет через CRTшные функции printf/wprintf то тогда понятно в чем проблема.
У MS эти функции конвертят аутпут в однобайтовую кодировку. Треба юзати WriteConsole.
Вообще заметил что у MS все CRT функции работают крайне хуёво.
Оно уже научилось в файл/пайп редиректиться?