#cpp #visual_studio #visual_cpp
Работаю в самой последней версии Visual Studio. Ещё при самом написании кода функция gets "подчеркнулась" волнистой линией. Вроде бы всё в самом коде нормально. Может это специфика самой среды или сама функция устарела... Подскажите, пожалуйста. #include "stdafx.h" #include#include using namespace std; int main() { char a[80]; cout << "Vvedite stroku: "; gets(a); cout << "Vasha stroka: "; cout << a; system("pause"); return 0; }
Ответы
Ответ 1
Попробуйте cin.get(a, 80); или cin.getline(a, 80); вместо gets(a); Синтаксис: istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim ); где s - указатель на массив char'ов, в который вы будете писать, n - максимальное количество символов, которые вы хотите записать (включая последний нулевой символ), delim - символ, нахождение которого прекращает ввод. Подробнее, но на английском тут. В VS использовать gets не выйдет: Эти функции устарели. Начиная с Visual Studio 2015 они недоступны в CRT. Безопасные версии этих функций, gets_s и _getws_s, по-прежнему доступны. Сведения об этих альтернативных функциях см. в статье gets_s, _getws_s. Подробнее по ссылке на msdn.Ответ 2
gets(a); fgets(a, sizeof a, stdin);
Комментариев нет:
Отправить комментарий