Произведите отдельный символ в C

Обновление:

Чтобы сохранить текущие настройки mysql и отключить ONLY_FULL_GROUP_BY, я предлагаю посетить ваш phpmyadmin или любой другой клиент, который вы используете, и type:

SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','') copy_me

следующий результат копирования в ваш файл my.ini.

mint: sudo nano /etc/mysql/my.cnf

ubuntu 16 и вверх: sudo nano /etc/mysql/my.cnf

ubuntu 14-16: /etc/mysql/mysql.conf.d/mysqld.cnf

Внимание! Результат copy_me может содержать длинный текст, который по умолчанию может быть обрезан. Убедитесь, что вы скопировали весь текст!


старый ответ:

Если вы хотите окончательно отключить ошибку " Выражение #N списка SELECT не находится в предложении GROUP BY и содержит неагрегированный столбец «db.table.COL», который функционально не зависит от столбцов в предложении GROUP BY, это несовместимо с sql_mode = only_full_group_by »выполняет следующие шаги:

  1. sudo nano /etc/mysql/my.cnf
  2. Добавьте это в конец файла
    [mysqld]  
    sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    
  3. sudo service mysql restart, чтобы перезагрузить MySQL

Это отключит ONLY_FULL_GROUP_BY для ВСЕХ пользователей

35
задан Quinn Taylor 29 June 2009 в 17:45
поделиться

4 ответа

да, %c распечатает единственный символ:

printf("%c", 'h');

также, putchar / putc будет работать также. От "человека putchar":

#include <stdio.h>

int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);

* fputc() writes the character c, cast to an unsigned char, to stream.
* putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once.
* putchar(c); is equivalent to putc(c,stdout).

РЕДАКТИРОВАНИЕ:

Также примечание, что, если у Вас есть строка, для вывода единственного символа, Вы должны получить символ в строке, которую Вы хотите произвести. Например:

const char *h = "hello world";
printf("%c\n", h[4]); /* outputs an 'o' character */
73
ответ дан TravisHendrickson 27 November 2019 в 06:32
поделиться

Как упомянуто в одном из других ответов, можно использовать putc (интервал c, ФАЙЛ *поток), putchar (интервал c) или fputc (интервал c, ФАЙЛ *поток) с этой целью.

то, Что важно для примечания, - то, что использование любой из вышеупомянутых функций от некоторых до signicantly быстрее, чем использование любой из анализирующих формат функций как printf.

Используя printf похож на использование пулемета для выпущения одной пули.

15
ответ дан Roalt 27 November 2019 в 06:32
поделиться

Остерегайтесь различия между 'c', и "c"

'c' символ, подходящий для форматирования с %c

"c", символ* указывающий на блок памяти с длиной 2 (с пустым разделителем).

14
ответ дан Douglas Leeder 27 November 2019 в 06:32
поделиться
char variable = 'x';  // the variable is a char whose value is lowercase x

printf("<%c>", variable); // print it with angle brackets around the character
3
ответ дан EvilTeach 27 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: