Хорошо, вот очень простой вопрос:
В следующем разделе кода «cin.getline ()» не запускается:
cout<< "Specify USB drive letter: ";
char usbD[1];
char outputLoc [40];
cin.getline(usbD, 1, '\n');
cout<< "\n" << usbD << "\n";
Что я делаю неправильно?
Вам нужно 2 пробела для хранения строки с одним символом, потому что c ++ использует \0
разграничить строку. Вы можете изменить свой код следующим образом:
cout<< "Specify USB drive letter: ";
char usbD[2];
char outputLoc [40];
cin.getline(usbD, 2, '\n'); // the 2 here will be the drive letter and the ending \0
cout<< "\n" << usbD << "\n";
Вам нужен usbD [2] — для буквы и конца строки '\0'
,
От http://www.cplusplus.com/reference/iostream/istream/getline/
s A pointer to an array of characters where the string is stored as a c-string. n Maximum number of characters to store (including the terminating null character).
@PiotrNycz прав, вы не оставили места для завершающего нуля. Но если все, что вам нужно, это один символ, то нет причин использовать массив.
char usbD;
cin.get(usbD);