Няшная / Говнокод #23421 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 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;
}

без слов

Запостил: KoderOT-Boga KoderOT-Boga, (Updated )

Комментарии (16) RSS

  • wandbox не хочет компилить этот способ ни одним из clang'ов
    Ответить
  • > код компилируйте clang-ом, иначе не закомпилится
    Почему? Русские идентификаторы и unistd.h мешают?
    Ответить
    • Конпилить не пробовал, но может из-за переменной new?

      P.S. Ах да, где здесь C++, inho?
      Ответить
      • И правда, new. Пейсатель программы боялся гордо выстрелить себе в ногу и решил вместо этого опустить её в уксус с говном.
        Ответить
    • gcc не любит идентификаторы, содержащие символы за пределами базовой латиницы.
      Ответить
      • А целка от майкрсофт даже UTF-16 исходники компилирует, правда не знаю насколько это кому-то поможет.
        Ответить
        • Невероятно полезная фича для компилятора, который может выдать выхлоп в latin1 только если установить язык системы на английский, а для utf-8 вообще никак. Плюс, половина выхлопа: "Привет мы майкрософт вон тута клевый символ как с но в кружочке это типа ничего не значит в контексте выхлопа компилятора, кроме как засрать тебе диагностику"
          Ответить
          • что такое "язык системы"? Кодировка для однобайтовых программ в винде?
            Ответить
            • это "Панель управления - Язык и региональные стандарты - Дополнительно - Изменить язык системы"

              Другими словами, компилятор выдаст тебе latin1 только вместе со всеми остальными локализованными программами
              Ответить
              • Да, это и есть однобайтовые кодировки для "программ, не использующих unicode"
                странно что cl таков
                Ответить
                • Для MS это не странно, а в порядке вещей.

                  У msbuild вообще кодировка выхлопа в каждой версии разная.

                  У некоторых утилит шапка выхлопа и основное сообщение могут быть в разных кодировках.
                  Ответить
                  • заебали кодировки, отличные от UTF-8.

                    Правда если msbuild пишет через CRTшные функции printf/wprintf то тогда понятно в чем проблема.
                    У MS эти функции конвертят аутпут в однобайтовую кодировку. Треба юзати WriteConsole.

                    Вообще заметил что у MS все CRT функции работают крайне хуёво.
                    Ответить
                    • > WriteConsole
                      Оно уже научилось в файл/пайп редиректиться?
                      Ответить
                      • можно подцепить хендлер к файлу (через SetStdHandle), но я боюсь что просто так не будет
                        Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8