Так что я делаю программу для задания, и на данный момент я пытаюсь получить пользовательский ввод и попытаться сделать его подходящим для определенной формы.Do ... Хотя не останавливается
Например, пользователь должен ввести дату в формате mm/yyyy. Если пользователь не вводит его в этом формате, он просто перемодует пользователя.
до сих пор это мой маленький цикл:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int findSlash(char[], int);
int findLastEle(char[]);
int main() {
//variables
char expDate[7];
int expLast, expEle;
int expLen;
do{
cout << "Enter experation (form mm/yyyy): ";
cin.getline(expDate, 7);
expLen = strlen(expDate);
expEle = findSlash(expDate, expLen);
expLast = findLastEle(expDate);
}while(expEle != (expLast - 4));
return 0;
}
//findSlash function (finds slash place in array)
int findSlash(char array[], int arrayLen){
int r, dec = 0;
for(r = 0; r < arrayLen; r++){
if(array[r] == '/'){
break;
}
else{
dec++;
}
}
return dec;
}
Петля предположит, что только reprompt на данный момент, если «/» не в нужном месте, но цикл вместо этого просто спам заявления COUT и я не Не знаю, почему это так. Любая помощь будет оценен: D
Что вы пробовали? что-то вроде одноэтапной отладки? выводя ваши инварианты цикла и его зависимые данные на каждый шаг? – PlasmaHH
Хорошим началом было бы добавить вывод отладки, который выводит значения, возвращаемые функциями 'findSlash' и' findLastEle'. – LihO