Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未正确检查日期结构 我有一些C++代码: #include <bjarne/std_lib_facilities.h> struct Date { int month; int day; int year; }; Date get_date(); Date get_birth_date(); int days_in_month (int month); bool is_valid_date (const Date& date); bool is_before (const Date& date1, const Date& date2); int main() { cout << "Welcome to Age Calculator!\n"; Date current; current = get_date(); cout << "Would you like to see how old you are (y/n)?"; char answer, slash; cin >> answer; Date birthday; if(answer == 'y'){ birthday = get_birth_date(); bool valid = is_valid_date (birthday); bool before = is_before (current,birthday); while(!valid && !before){ cout << "Invalid birth date? Please re-enter: "; cin >> birthday.month >> slash >> birthday.day >> slash >> birthday.year; valid = is_valid_date (birthday); before = is_before (current,birthday); } cout << "Your birthday is: " << birthday.month << "/" << birthday.day << "/" << birthday.year << "\n"; } else cout << "You are so chicken! \n"; } Date get_date() { cout << "Please enter today's date (mm/dd/yyyy): "; Date today; char slash; cin >> today.month >> slash >> today.day >> slash >> today.year; bool valid = is_valid_date (today); while(!valid){ cout << "Invalid date? Please re-enter: "; cin >> today.month >> slash >> today.day >> slash >> today.year; valid = is_valid_date (today); } cout << "Date entered was: " << today.month << "/" << today.day << "/" << today.year << "\n"; return today; } Date get_birth_date() { cout << "Please enter your birth date (mm/dd/yyyy): "; Date birth; char slash; cin >> birth.month >> slash >> birth.day >> slash >> birth.year; return birth; } int days_in_month (int month) { int month31[7] = {1,3,5,7,8,10,12}; for(int i = 0; i < 7; i++){ if(month == month31[i]) return 31; } int month30[4] = {4,6,9,11}; for(int i = 0; i < 4; i++){ if(month == month30[i]) return 30; } if(month == 2) return 28; } bool is_valid_date (const Date& date) { int months[12] = {1,2,3,4,5,6,7,8,9,10,11,12}; int days = 0; for(int i = 0; i < 12; i++){ if(date.month == months[i]){ days = days_in_month (date.month); if(date.day <= days && date.day > 1){ return true; } } return false; } bool is_before (const Date& date1, const Date& date2) { cout << date1.day << " " << date2.day; if(date2.year < date1.year){ return true; } else if(date2.year == date1.year) { cout << "-"; if(date2.month < date1.month) return true; else if(date2.month == date1.month){ if(date2.day <= date1.day) return true; } else return false; } return false; } #包括 结构日期{ 整月; 国际日; 国际年; }; 日期获取日期(); 日期获取出生日期(); 月内整数天(整数月); bool为有效日期(施工日期和日期); bool在(施工日期和日期1、施工日期和日期2)之前; int main() { 答不上来; 生日; 如果(答案='y'){ 生日=获得出生日期(); bool valid=有效日期(生日); bool before=is_before(当前,生日); while(!valid&&!before){ cout>生日.month>>斜线>>生日.day>>斜线>>生日.year; 有效=有效日期(生日); before=在(当前、生日)之前; } cout>今天。一年; bool valid=有效日期(今天); while(!valid){ cout>今日.month>>斜杠>>今日.day>>斜杠>>今日.year; 有效=有效日期(今天); } cout slash>>出生年份; 回生; } 月内整数天(整数月) { int month31[7]={1,3,5,7,8,10,12}; 对于(int i=0;i_C++_Struct_While Loop_Boolean - Fatal编程技术网 生日.month>>斜线>>生日.day>>斜线>>生日.year; 有效=有效日期(生日); before=在(当前、生日)之前; } cout>今天。一年; bool valid=有效日期(今天); while(!valid){ cout>今日.month>>斜杠>>今日.day>>斜杠>>今日.year; 有效=有效日期(今天); } cout slash>>出生年份; 回生; } 月内整数天(整数月) { int month31[7]={1,3,5,7,8,10,12}; 对于(int i=0;i,c++,struct,while-loop,boolean,C++,Struct,While Loop,Boolean" /> 生日.month>>斜线>>生日.day>>斜线>>生日.year; 有效=有效日期(生日); before=在(当前、生日)之前; } cout>今天。一年; bool valid=有效日期(今天); while(!valid){ cout>今日.month>>斜杠>>今日.day>>斜杠>>今日.year; 有效=有效日期(今天); } cout slash>>出生年份; 回生; } 月内整数天(整数月) { int month31[7]={1,3,5,7,8,10,12}; 对于(int i=0;i,c++,struct,while-loop,boolean,C++,Struct,While Loop,Boolean" />

未正确检查日期结构 我有一些C++代码: #include <bjarne/std_lib_facilities.h> struct Date { int month; int day; int year; }; Date get_date(); Date get_birth_date(); int days_in_month (int month); bool is_valid_date (const Date& date); bool is_before (const Date& date1, const Date& date2); int main() { cout << "Welcome to Age Calculator!\n"; Date current; current = get_date(); cout << "Would you like to see how old you are (y/n)?"; char answer, slash; cin >> answer; Date birthday; if(answer == 'y'){ birthday = get_birth_date(); bool valid = is_valid_date (birthday); bool before = is_before (current,birthday); while(!valid && !before){ cout << "Invalid birth date? Please re-enter: "; cin >> birthday.month >> slash >> birthday.day >> slash >> birthday.year; valid = is_valid_date (birthday); before = is_before (current,birthday); } cout << "Your birthday is: " << birthday.month << "/" << birthday.day << "/" << birthday.year << "\n"; } else cout << "You are so chicken! \n"; } Date get_date() { cout << "Please enter today's date (mm/dd/yyyy): "; Date today; char slash; cin >> today.month >> slash >> today.day >> slash >> today.year; bool valid = is_valid_date (today); while(!valid){ cout << "Invalid date? Please re-enter: "; cin >> today.month >> slash >> today.day >> slash >> today.year; valid = is_valid_date (today); } cout << "Date entered was: " << today.month << "/" << today.day << "/" << today.year << "\n"; return today; } Date get_birth_date() { cout << "Please enter your birth date (mm/dd/yyyy): "; Date birth; char slash; cin >> birth.month >> slash >> birth.day >> slash >> birth.year; return birth; } int days_in_month (int month) { int month31[7] = {1,3,5,7,8,10,12}; for(int i = 0; i < 7; i++){ if(month == month31[i]) return 31; } int month30[4] = {4,6,9,11}; for(int i = 0; i < 4; i++){ if(month == month30[i]) return 30; } if(month == 2) return 28; } bool is_valid_date (const Date& date) { int months[12] = {1,2,3,4,5,6,7,8,9,10,11,12}; int days = 0; for(int i = 0; i < 12; i++){ if(date.month == months[i]){ days = days_in_month (date.month); if(date.day <= days && date.day > 1){ return true; } } return false; } bool is_before (const Date& date1, const Date& date2) { cout << date1.day << " " << date2.day; if(date2.year < date1.year){ return true; } else if(date2.year == date1.year) { cout << "-"; if(date2.month < date1.month) return true; else if(date2.month == date1.month){ if(date2.day <= date1.day) return true; } else return false; } return false; } #包括 结构日期{ 整月; 国际日; 国际年; }; 日期获取日期(); 日期获取出生日期(); 月内整数天(整数月); bool为有效日期(施工日期和日期); bool在(施工日期和日期1、施工日期和日期2)之前; int main() { 答不上来; 生日; 如果(答案='y'){ 生日=获得出生日期(); bool valid=有效日期(生日); bool before=is_before(当前,生日); while(!valid&&!before){ cout>生日.month>>斜线>>生日.day>>斜线>>生日.year; 有效=有效日期(生日); before=在(当前、生日)之前; } cout>今天。一年; bool valid=有效日期(今天); while(!valid){ cout>今日.month>>斜杠>>今日.day>>斜杠>>今日.year; 有效=有效日期(今天); } cout slash>>出生年份; 回生; } 月内整数天(整数月) { int month31[7]={1,3,5,7,8,10,12}; 对于(int i=0;i

未正确检查日期结构 我有一些C++代码: #include <bjarne/std_lib_facilities.h> struct Date { int month; int day; int year; }; Date get_date(); Date get_birth_date(); int days_in_month (int month); bool is_valid_date (const Date& date); bool is_before (const Date& date1, const Date& date2); int main() { cout << "Welcome to Age Calculator!\n"; Date current; current = get_date(); cout << "Would you like to see how old you are (y/n)?"; char answer, slash; cin >> answer; Date birthday; if(answer == 'y'){ birthday = get_birth_date(); bool valid = is_valid_date (birthday); bool before = is_before (current,birthday); while(!valid && !before){ cout << "Invalid birth date? Please re-enter: "; cin >> birthday.month >> slash >> birthday.day >> slash >> birthday.year; valid = is_valid_date (birthday); before = is_before (current,birthday); } cout << "Your birthday is: " << birthday.month << "/" << birthday.day << "/" << birthday.year << "\n"; } else cout << "You are so chicken! \n"; } Date get_date() { cout << "Please enter today's date (mm/dd/yyyy): "; Date today; char slash; cin >> today.month >> slash >> today.day >> slash >> today.year; bool valid = is_valid_date (today); while(!valid){ cout << "Invalid date? Please re-enter: "; cin >> today.month >> slash >> today.day >> slash >> today.year; valid = is_valid_date (today); } cout << "Date entered was: " << today.month << "/" << today.day << "/" << today.year << "\n"; return today; } Date get_birth_date() { cout << "Please enter your birth date (mm/dd/yyyy): "; Date birth; char slash; cin >> birth.month >> slash >> birth.day >> slash >> birth.year; return birth; } int days_in_month (int month) { int month31[7] = {1,3,5,7,8,10,12}; for(int i = 0; i < 7; i++){ if(month == month31[i]) return 31; } int month30[4] = {4,6,9,11}; for(int i = 0; i < 4; i++){ if(month == month30[i]) return 30; } if(month == 2) return 28; } bool is_valid_date (const Date& date) { int months[12] = {1,2,3,4,5,6,7,8,9,10,11,12}; int days = 0; for(int i = 0; i < 12; i++){ if(date.month == months[i]){ days = days_in_month (date.month); if(date.day <= days && date.day > 1){ return true; } } return false; } bool is_before (const Date& date1, const Date& date2) { cout << date1.day << " " << date2.day; if(date2.year < date1.year){ return true; } else if(date2.year == date1.year) { cout << "-"; if(date2.month < date1.month) return true; else if(date2.month == date1.month){ if(date2.day <= date1.day) return true; } else return false; } return false; } #包括 结构日期{ 整月; 国际日; 国际年; }; 日期获取日期(); 日期获取出生日期(); 月内整数天(整数月); bool为有效日期(施工日期和日期); bool在(施工日期和日期1、施工日期和日期2)之前; int main() { 答不上来; 生日; 如果(答案='y'){ 生日=获得出生日期(); bool valid=有效日期(生日); bool before=is_before(当前,生日); while(!valid&&!before){ cout>生日.month>>斜线>>生日.day>>斜线>>生日.year; 有效=有效日期(生日); before=在(当前、生日)之前; } cout>今天。一年; bool valid=有效日期(今天); while(!valid){ cout>今日.month>>斜杠>>今日.day>>斜杠>>今日.year; 有效=有效日期(今天); } cout slash>>出生年份; 回生; } 月内整数天(整数月) { int month31[7]={1,3,5,7,8,10,12}; 对于(int i=0;i,c++,struct,while-loop,boolean,C++,Struct,While Loop,Boolean,如果输入的生日无效且在当前日期之后,您的情况将尝试获得新的生日。我想您需要: while(!valid || !before) 如果输入的生日无效或在当前日期之后,则会获得新的生日。您应该将while(!valid&&!before)更改为while(!valid | | before) 只要出生日期无效或出生日期在当前日期之后,您就希望留在循环中。当前,如果输入的有效日期在当前日期之后,它将脱离循环,因为第一个条件为false(日期有效).在发布问题之前,您可能需要清理一些调试代码。有些人可

如果输入的生日无效且在当前日期之后,您的情况将尝试获得新的生日。我想您需要:

while(!valid || !before)

如果输入的生日无效或在当前日期之后,则会获得新的生日。

您应该将
while(!valid&&!before)
更改为
while(!valid | | before)


只要出生日期无效或出生日期在当前日期之后,您就希望留在循环中。当前,如果输入的有效日期在当前日期之后,它将脱离循环,因为第一个条件为false(日期有效).

在发布问题之前,您可能需要清理一些调试代码。有些人可能会觉得很有趣,但其他人可能会感到不快:)是的,去掉脏话,否则您会被否决和/或您的问题被关闭:/啊,是的,我真的很抱歉我忘了把它拿出来!谢谢编辑。如果您发布d您的代码失败的特定输入。例如,您为今天的日期和出生日期输入了什么,这会导致意外行为。您发布的
代码是有效的\u date
缺少结束日期
}
。这是转录错误吗?