C++ c++;奇怪的执行逻辑 int main(int argc,const char*argv[] { std::cout
您没有得到任何输出的原因是C++ c++;奇怪的执行逻辑 int main(int argc,const char*argv[] { std::cout,c++,execution,C++,Execution,您没有得到任何输出的原因是stdout(默认情况下由cout使用)没有被刷新。stdout流被缓冲,并且只有在某些情况下才会刷新此缓冲区:当指令刷新时(例如使用cout.flush()到达新行)),或退出流程时 在代码中,您没有输出任何换行符,也没有手动刷新缓冲区(因为hasPassed从未设置为true,导致无限循环)您从未退出该进程。由于这些原因,stdout从未被刷新,因此任何输出都不会显示在屏幕上。您没有得到任何输出的原因是stdout(默认情况下由cout使用)未被刷新。stdout流
stdout
(默认情况下由cout
使用)没有被刷新。stdout
流被缓冲,并且只有在某些情况下才会刷新此缓冲区:当指令刷新时(例如使用cout.flush()到达新行)
),或退出流程时
在代码中,您没有输出任何换行符,也没有手动刷新缓冲区(因为
hasPassed
从未设置为true
,导致无限循环)您从未退出该进程。由于这些原因,stdout
从未被刷新,因此任何输出都不会显示在屏幕上。您没有得到任何输出的原因是stdout
(默认情况下由cout
使用)未被刷新。stdout
流已被缓冲,并且此缓冲区仅在某些情况下被刷新:到达新行时,指示刷新(例如使用cout.flush()
),或退出进程时
在代码中,您没有输出任何换行符,也没有手动刷新缓冲区(因为
hasPassed
从未设置为true
,导致无限循环)您从未退出该进程。由于这些原因,stdout
从未被刷新,因此任何输出都不会显示在屏幕上。您没有得到任何输出的原因是stdout
(默认情况下由cout
使用)未被刷新。stdout
流已被缓冲,并且此缓冲区仅在某些情况下被刷新:到达新行时,指示刷新(例如使用cout.flush()
),或退出进程时
在代码中,您没有输出任何换行符,也没有手动刷新缓冲区(因为
hasPassed
从未设置为true
,导致无限循环)您从未退出该进程。由于这些原因,stdout
从未被刷新,因此任何输出都不会显示在屏幕上。您没有得到任何输出的原因是stdout
(默认情况下由cout
使用)未被刷新。stdout
流已被缓冲,并且此缓冲区仅在某些情况下被刷新:到达新行时,指示刷新(例如使用cout.flush()
),或退出进程时
在代码中,您没有输出任何换行符,也没有手动刷新缓冲区(因为
hasPassed
从未设置为true
,导致无限循环)您从未退出该进程。由于这些原因,stdout
从未刷新,因此任何输出都不会显示在屏幕上。您没有初始化objectSize
。您从未将hasPassed
设置为true
,因此您的while循环不会退出。因为您没有刷新(只需给它一个换行符,或std::endl
),它可能不会显示任何内容。@icabod我很清楚我从未将hasPassed设置为true。但它不应该更改任何内容,因为循环是在代码之后输入的。提示:beyondstd::coutfor(char c:turnsDefined){objectSize++;}
关于int objectSize=turnDefined.size();
?:)您还没有初始化objectSize
。您从未将hasspassed
设置为true
,因此您的while循环不会退出。因为您没有刷新cout(只需给它一个换行,或者std::endl
),它可能不会显示任何内容。@icabod我很清楚我从未将hasPassed设置为true。但它不应该更改任何内容,因为循环是在代码之后输入的。提示:Everyting beyondstd::coutfor(char c:turnsDefined){objectSize++;}
关于int-objectSize=turnsefined.size();
?:)您尚未初始化objectSize
。您从未将hasspassed
设置为true
,因此您的while循环不会退出。因为您没有刷新cout(只需给它一个换行符,或std::endl
),它可能不会显示任何内容。@icabod我很清楚我从未将hasPassed设置为true。但它不应该更改任何内容,因为循环是在代码之后输入的。提示:Everyting beyondstd::coutfor(char c:turnsDefined){objectSize++;}
关于int-objectSize=turnsefined.size();
?:)您尚未初始化objectSize
。您从未将hasspassed
设置为true
,因此您的while循环不会退出。因为您没有刷新cout(只需给它一个换行符,或std::endl
),它可能不会显示任何内容。@icabod我很清楚我从未将hasPassed设置为true。但它不应该更改任何内容,因为循环是在代码之后输入的。提示:Everyting beyondstd::coutfor(char c:turnsDefined){objectSize++;}
关于int-objectSize=turnsefined.size();
?:)
int main(int argc, const char * argv[])
{
std::cout << "How many turns do you want to do?" << std::endl << std::endl;
std::string turnsDefined;
std::cin >> turnsDefined;
std::cout << turnsDefined;
bool hasPassed = false;
int objectSize;
for(char c : turnsDefined){
objectSize++;
}
std::cout << objectSize;
while(hasPassed != true){
for(char c : turnsDefined){
if(isdigit(c) != true){
hasPassed = false;
break;
}
}
}
std::cout << "Successfully passed all if conditions.";
return 0;
}