用c++写一个函数,读取生成exe的同级目录下的tag.csv文件中的第一列,分别放入名为num的char数组内
时间: 2024-04-12 14:29:12 浏览: 128
用c++来读取csv文件
好的,下面是用 C++ 编写的函数,可以读取生成的 exe 的同级目录下的 tag.csv 文件中的第一列,并将其放入名为 num 的 char 数组内:
```cpp
#include <iostream>
#include <fstream>
#include <string>
void readTagCSV(char* num, int size) {
// 获取 exe 所在目录路径
char buffer[MAX_PATH];
GetModuleFileNameA(NULL, buffer, MAX_PATH);
std::string exePath(buffer);
std::string dirPath = exePath.substr(0, exePath.find_last_of("\\") + 1);
// 拼接 tag.csv 的完整路径
std::string csvPath = dirPath + "tag.csv";
// 打开 tag.csv 文件
std::ifstream file(csvPath);
if (!file.is_open()) {
std::cout << "无法打开 tag.csv 文件" << std::endl;
return;
}
// 读取第一列数据
std::string line;
if (std::getline(file, line)) {
size_t pos = line.find(",");
if (pos != std::string::npos) {
std::string firstColumn = line.substr(0, pos);
strncpy(num, firstColumn.c_str(), size - 1);
num[size - 1] = '\0';
}
}
// 关闭文件
file.close();
}
```
你可以将这段代码放入你的 C++ 项目中,然后调用 `readTagCSV` 函数,传入一个足够大的 char 数组和它的长度,函数会将 tag.csv 文件中的第一列数据放入数组中。请注意,该代码使用了 Windows 平台特定的 API 函数 `GetModuleFileNameA` 来获取 exe 所在目录路径,如果你是在其他平台上使用,请相应地修改获取目录路径的部分代码。
阅读全文