while (getline(config, line)) { if (line.find("search_count") != string::npos) { search_count = stoi(line.substr(line.find("=") + 1)); break; }如何把while (getline(config, line)) { if (line.find("search_time") != string::npos) { search_time = stoi(line.substr(line.find("=") + 1)); break; } }放在内部形成多层循环
时间: 2023-06-18 13:08:42 浏览: 54
你可以将两个while循环嵌套在一起,形成多层循环。代码如下:
```
while (getline(config, line)) {
if (line.find("search_count") != string::npos) {
search_count = stoi(line.substr(line.find("=") + 1));
while (getline(config, line)) {
if (line.find("search_time") != string::npos) {
search_time = stoi(line.substr(line.find("=") + 1));
break;
}
}
break;
}
}
```
这样,当找到"search_count"时,内部的while循环会一直执行,直到找到"search_time"。然后跳出内部循环,继续执行外部循环,找到下一个"search_count"。如此反复,直到读取完整个文件。
相关问题
while (getline(config, line)) { if (line.find("search_time") != string::npos) { search_time = stoi(line.substr(line.find("=") + 1)); break; } }和 while (getline(config, line)) { if (line.find("search_count") != string::npos) { search_count = stoi(line.substr(line.find("=") + 1)); break; }如何嵌套在一起
你可以将这两段代码放在一个while循环中,同时使用一个if语句来判断当前行中是否包含所需的关键字。例如:
```
while (getline(config, line)) {
if (line.find("search_time") != string::npos) {
search_time = stoi(line.substr(line.find("=") + 1));
} else if (line.find("search_count") != string::npos) {
search_count = stoi(line.substr(line.find("=") + 1));
}
}
```
这样,当读取到文件中包含"search_time"或"search_count"的行时,分别会将其后面的数值赋值给相应的变量。注意,使用else if语句可以保证只会执行一个分支,避免了重复赋值的情况。
#include <Windows.h> #include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> #include <cstdlib> #include <ctime> #include <conio.h> #include <winsock.h> #include <ws2bth.h> #include <bluetoothapis.h> #pragma comment(lib, "ws2_32.lib") using namespace std; const string CONFIG_FILE = "config.ini"; const int MAX_BLUETOOTH_DEVICES = 10; int main() { // 读取配置文件 ifstream config(CONFIG_FILE); if (!config.is_open()) { cout << "无法打开配置文件!" << endl; return -1; } string line; int search_count = 0; while (getline(config, line)) { if (line.find("search_count") != string::npos) { search_count = stoi(line.substr(line.find("=") + 1)); break; } } config.close(); // 初始化蓝牙 WSAData wsaData; int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); if (iResult != NO_ERROR) { cout << "WSAStartup 失败!" << endl; return -1; } // 枚举蓝牙设备 BLUETOOTH_DEVICE_SEARCH_PARAMS searchParams = { sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS) }; searchParams.fReturnAuthenticated = TRUE; searchParams.fReturnRemembered = TRUE; searchParams.fReturnUnknown = TRUE; searchParams.hRadio = NULL; BLUETOOTH_DEVICE_INFO deviceInfo = { sizeof(BLUETOOTH_DEVICE_INFO) }; HBLUETOOTH_DEVICE_FIND deviceFindHandle; vector<BLUETOOTH_DEVICE_INFO> devices; deviceFindHandle = BluetoothFindFirstDevice(&searchParams, &deviceInfo); if (deviceFindHandle != NULL) { do { devices.push_back(deviceInfo); } while (BluetoothFindNextDevice(deviceFindHandle, &deviceInfo)); BluetoothFindDeviceClose(deviceFindHandle); } // 检查蓝牙设备数量 if (devices.size() >= MAX_BLUETOOTH_DEVICES) { ofstream file("CheckBT.log"); file << "PASS"; // 向文档中写入"PASS"字符串 } else { ofstream file("CheckBT.log"); file << "FAIL"; // 向文档中写入"FAIL"字符串 } // 清理蓝牙 WSACleanup(); return 0; }改进这段代码,把每个蓝牙设备名称输出到文档中
#include <Windows.h>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <winsock.h>
#include <ws2bth.h>
#include <bluetoothapis.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;
const string CONFIG_FILE = "config.ini";
const int MAX_BLUETOOTH_DEVICES = 10;
int main() {
// 读取配置文件
ifstream config(CONFIG_FILE);
if (!config.is_open()) {
cout << "无法打开配置文件!" << endl;
return -1;
}
string line;
int search_count = 0;
while (getline(config, line)) {
if (line.find("search_count") != string::npos) {
search_count = stoi(line.substr(line.find("=") + 1));
break;
}
}
config.close();
// 初始化蓝牙
WSAData wsaData;
int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != NO_ERROR) {
cout << "WSAStartup 失败!" << endl;
return -1;
}
// 枚举蓝牙设备
BLUETOOTH_DEVICE_SEARCH_PARAMS searchParams = { sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS) };
searchParams.fReturnAuthenticated = TRUE;
searchParams.fReturnRemembered = TRUE;
searchParams.fReturnUnknown = TRUE;
searchParams.hRadio = NULL;
BLUETOOTH_DEVICE_INFO deviceInfo = { sizeof(BLUETOOTH_DEVICE_INFO) };
HBLUETOOTH_DEVICE_FIND deviceFindHandle;
vector<BLUETOOTH_DEVICE_INFO> devices;
deviceFindHandle = BluetoothFindFirstDevice(&searchParams, &deviceInfo);
if (deviceFindHandle != NULL) {
do {
devices.push_back(deviceInfo);
} while (BluetoothFindNextDevice(deviceFindHandle, &deviceInfo));
BluetoothFindDeviceClose(deviceFindHandle);
}
// 输出蓝牙设备名称到文档
ofstream file("CheckBT.log");
if (devices.size() >= MAX_BLUETOOTH_DEVICES) {
file << "PASS" << endl;
} else {
file << "FAIL" << endl;
}
for (auto device : devices) {
file << device.szName << endl;
}
// 清理蓝牙
WSACleanup();
return 0;
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)