Почему сейчас есть разница, когда printf ("% c", '\ 0') в mingw и против 2017? - PullRequest
0 голосов
/ 31 октября 2018

Я использовал два вида компилятора для компиляции одного и того же кода:

#include<stdio.h>

int main(){
    printf("%c", '\0');
    return 0;
}

И я получу разные результаты, скомпилированные mingw и vs2017.
В mingw я могу получить пробел в консоли. Но в vs2017 я получил символ «а», как показано на следующем рисунке.

It may not print correctly.

Это ошибка в vs2017 или версия моего vs2017 слишком низкая?

1 Ответ

0 голосов
/ 31 октября 2018

Вероятно, это связано с тем, что вы пытаетесь напечатать символ '\0'. Это может вызвать неопределенное поведение. Вы можете попробовать печатать только нормальные символы, такие как 'A', 't', '.' и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...