Функция капитализации не работает в Visual Studio 2013 (C ++)

0

Я пытаюсь сделать свою собственную функцию для заглавной буквы в C++, (stdio.h ТОЛЬКО!) Функция не работала так, как ожидалось, на VS 2013, она всегда дает мне странный вывод (somthing like alpha symbol), но он (функция) работает в 2010 году,

функция i, сделанная для заглавной буквы, ниже:

#include <stdio.h>

int main(){

char i;
scanf_s("%c", &i);
fflush(stdin);

printf("%c", i -= 32);

getchar();
return 0;}
  • 0
    Каков ваш вклад?
  • 0
    fflush(stdin) - неопределенное поведение
Теги:

1 ответ

1
Лучший ответ

scanf_s, в отличие от scanf, требует, чтобы размер буфера определялся для всех входных параметров типа c, C, s, S или [как указано здесь:

http://msdn.microsoft.com/en-us/library/w40768et%28v=vs.80%29.aspx

Итак, эта строка:

    scanf_s("%c", &i);

должно быть фактически:

    scanf_s("%c", &i, 1);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню