Я нахожусь в классе программирования в Техасском техническом университете, и после того, как я поработал с Python в прошлом семестре, я, наконец, в классе C++. В то время как мы делали программу HelloWorld в классе сегодня, я и некоторые другие получили Microsoft Visual Studio 2013, говорящие нам использовать scanf_s вместо scanf, как это использовал инструктор в своей программе. Ниже мой код в его нынешнем виде.Почему VS2013 говорит мне использовать scanf_s?
#include <stdio.h>
int main(){
int i,j;
float x,y;
scanf("input a number: %d %d %f %f", &i, &j, &x, &y);
printf("print numbers a : %d \n",i);
printf("print numbers a : %10.3d \n", i);
printf("print numbers a : %-10.3d", i);
fflush(stdin);
getchar();
return 0;
}
Я бы сказал, что ... не используйте его, если вы не согласны с не переносимым кодом: afaik, это микрософт думает - я считаю, что это просто «безопасная» версия scanf ... хорошее намерение, но ... – ShinTakezou
['scanf_s'] (http://msdn.microsoft.com/en-us/library/w40768et.aspx) - это расширение Visual Studio, которое должно иметь дополнительные улучшения безопасности. Это * не * переносится за пределы Visual Studio. –
Избегайте проблемы, вы используете C++, поэтому используйте std :: cin и std :: cout. Boom. – kfsone