Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему процесс прерывается?
 
 автор: navi1893   (15.12.2011 в 23:34)   письмо автору
 
 

char a;

while ((a = getch()) != 'exit') {
if (a == '1') {
char path1[100], path2[100];
cout << "Type First Adress" << endl;
cin.getline(path1, 100);
cout << "Type Second Adress" << endl;
cin.getline(path2, 100);

CopyFile(path1, path2, true);
cout << " File is Copied " << endl;
}
}

хотя я поставил код while ((a=getch()) != 'exit') не выскакивать, только он выходит? что сделать, чтобы программа не выходила при нескольких нажатиях enter, пока не наберется exit -^ enter!

до тех пор пока ты не набрал "exit" - enter, программа работала при всех нажатиях enter, пока не напечатана exit.Т.е ввожу первый адрес //enter, второй адрес //enter (он переносит файл), но я еще хочу продолжить работу с программой, например хочу перенести еще 1 файл без перезапуска программы

  Ответить  
 
 автор: cheops   (16.12.2011 в 02:22)   письмо автору
 
   для: navi1893   (15.12.2011 в 23:34)
 

Погодите, вы используете getch(), который по определению читает только один символ, сколько бы пользователь символ не ввел и этот один символ сравниваете со строкой 'exit' (уже 4 символа, если не считать признак окончания строки \0). Тем более, что тут следует использовать двойные кавычки, а базовая строка char так просто не сравнивается - нужно либо Это не правильно, тем более в C/C++ базовые типы так просто не сравниваются. Нужно либо как вы далее сравнивать с одним символом, либо читать строку при помощи getline и сравнивать строки при помощи функции strcmp() или аналогов. Только для более мощных строк (а их несколько видов и вы сами можете реализовать свой вариант строк, на базе char * или просто участков памяти) операторы сравнения перегружены, тут они не перегружены, так как массивы в C/C++ это по сути указатели, которые ссылаются на область памяти, но "не знают" как далеко она простирается - выделить достаточно памяти и следить за её границей, возвратом в систему - это все на совести программиста.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования