我正在使用多字节字符编写C ++ MFC应用程序,我正在尝试迭代运行驱动器号以检查USB连接。我的代码的这一部分开始在调试模式中引起一些问题:
i=0
永远不会找到驱动器,因为此数组的末尾始终附加“w”。
例如,对于drivePath=A:\w
,TCHAR
我的假设是它与多字节/ unicode相关,但我认为通过使用_T
和def bus():
busurl = ('https://api.tfl.gov.uk/Line/9/Arrivals?stopPointId=IDHERE&app_id= % secret &app_key= % key')
bus = requests.get(busurl)
busarrival = bus.json()
count = 0
for i in busarrival:
if count <= 2:
status = (i['timeToStation'])
result = (status / 60)
print 'Next bus in {} mins'.format(result)
count += 1
,它可以解决这个问题。
有什么问题吗?
答案 0 :(得分:3)
您永远不会使用空字符终止数组。
TCHAR drivePath[3] = {_T('A'+i), _T(':'), _T('\\')};
应该是
TCHAR drivePath[4] = {_T('A'+i), _T(':'), _T('\\'), _T('\0')};
// or
TCHAR drivePath[] = {_T('A'+i), _T(':'), _T('\\'), _T('\0')};
// ^^ let the compiler figure out the size
答案 1 :(得分:3)
另一种选择:
TCHAR drivePath[] = { _T("A:\\") };
for (char ch = 'A'; ch <= 'Z'; ch++){
//Possible device path
drivePath[0] = ch;
}