C++ 代码在控制台上显示目录的内容,但不显示';Don’不要等待‘getch’`

C++ 代码在控制台上显示目录的内容,但不显示';Don’不要等待‘getch’`,c++,windows,dirent.h,C++,Windows,Dirent.h,当我使用第一批代码时没有错误,但是当我使用第二批代码时,程序运行并在控制台上显示目录的内容,但它不会等待getch(),Windows会说程序已停止工作 第一批代码(工程): #包括 #包括 #包括 使用名称空间std; int main(){ DIR*DIR=NULL; 结构方向*sdir; dir=opendir(“.”); while(sdir=readdir(dir)){ 请先确定您的问题,以便我们了解您到目前为止所做的工作。当您定义指针变量sdir时,它最初指向何处?请花一些时间阅读。

当我使用第一批代码时没有错误,但是当我使用第二批代码时,程序运行并在控制台上显示目录的内容,但它不会等待
getch()
,Windows会说程序已停止工作

第一批代码(工程):

#包括
#包括
#包括
使用名称空间std;
int main(){
DIR*DIR=NULL;
结构方向*sdir;
dir=opendir(“.”);
while(sdir=readdir(dir)){

请先确定您的问题,以便我们了解您到目前为止所做的工作。当您定义指针变量
sdir
时,它最初指向何处?请花一些时间阅读。在第一种情况下,您在使用它之前测试
readdir
的结果。在第二种情况下,您在使用它之后测试结果。您还有一个u在
while(sdir)
中第一次初始化指针。你所说的“程序运行正常但停止工作”是什么意思?这有点矛盾。同时也解释一下“停止工作”的确切含义,是否显示一些错误消息?程序运行并在控制台上显示目录的内容,但它不等待getch(),windows说程序已停止工作。
#include<iostream>
#include<conio.h>
#include<dirent.h>

using namespace std;

int main() {

    DIR *dir=NULL;
    struct dirent *sdir;

    dir= opendir(".");

    while(sdir=readdir(dir)){

        cout<<endl<<sdir->d_name;
    }

    getch();
    return 0;
}
#include<iostream>
#include<conio.h>
#include<dirent.h>

using namespace std;

int main() {

    DIR *dir=NULL;
    struct dirent *sdir;

    dir= opendir(".");
    sdir=readdir(dir); cout<<sdir->d_name;
    while(sdir){
        sdir=readdir(dir);
        cout<<endl<<sdir->d_name;
    }

    getch();
    return 0;
}