gpt4 book ai didi

c++ - 返回驱动器号列表的程序

转载 作者:可可西里 更新时间:2023-11-01 09:48:26 25 4
gpt4 key购买 nike

在我的电脑示例中,所需的输出应该是:“C: E: F: H: N:”。我知道这是可能的,但最简单的方法是什么? QueryDosDevice 输出中的陶艺

#ifndef UNICODE
#define UNICODE
#endif


#include <Windows.h>
#include <fstream>
#include <iostream>

const int REPORT_LENGTH = 5000;

int main(void)
{
TCHAR targetPath[REPORT_LENGTH];

std::ofstream oFile;

oFile.open("dos device query.txt");

QueryDosDevice(NULL,targetPath,REPORT_LENGTH);

for(int i=0; i<REPORT_LENGTH;i++)
if (targetPath[i]=='\0')(targetPath[i]='\n');



for(int i=0; i<REPORT_LENGTH; i++)
oFile<<static_cast<char>(targetPath[i]);

oFile.close();

return 0;
}

将是对时间和资源的巨大浪费。还有功能GetLogicalDriveStrings背叛了我很多。

#include <Windows.h>

int main()
{
TCHAR buffer[50];

GetLogicalDriveStrings(50,buffer);

MessageBox(0,buffer,"Drives in the system",MB_OK);


return 0;
}

它只显示“C:\”卷。

最佳答案

使用 GetLogicalDrives 的示例,尽管没有连接到字符串(留给 OP 和读者作为练习;)):

#include <stdio.h>
#include <tchar.h>
#include <Windows.h>

int __cdecl _tmain(int argc, _TCHAR *argv[])
{
// Get the bit mask of drive letters
DWORD drives = ::GetLogicalDrives();
// Go through all possible letters from a to z
for(int i = 0; i < 26; i++)
{
// Check if the respective bit is set
if(drives & (1 << i))
{
// ... and if so, print it
_tprintf(TEXT("Drive %c: exists\n"), _T('A') + i);
}
}
return 0;
}

关于c++ - 返回驱动器号列表的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10710936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com