所以我正在做一個任務的程序,此刻我正在嘗試獲取用戶輸入並嘗試使其適合某種形式。做...雖然不會停止
例如,用戶需要輸入格式爲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;
}
環路是假設只是重新提示的那一刻,如果「/」是不是在正確的位置,但在循環而不是僅僅修建垃圾的COUT聲明,我不不知道爲什麼要這樣做。任何幫助,將不勝感激:d
你有什麼試過?像單步調試?每步輸出循環不變量及其相關數據? – PlasmaHH 2013-04-24 21:11:17
好的開始是添加調試輸出,它會輸出從'findSlash'和'findLastEle'函數返回的值。 – LihO 2013-04-24 21:11:44