gpt4 book ai didi

c++ - 如何将字符串转换为 uint32_t

转载 作者:行者123 更新时间:2023-11-30 02:14:44 27 4
gpt4 key购买 nike

<分区>

我有一个程序,它逐行读取文件的内容,将每一行存储到一个字符串 vector 中,然后打印 vector 的内容。

将文件数据读入字符串 vector 后,我尝试将每一行从 string 转换为 uint32。文件的每一行都由 32 位 数字组成。输入数据文件示例 (input_file.dat):

31401402
67662718
74620743
54690001
14530874
13263047
84662943
09732679
13839873

我想将这些字符串中的每一个都转换为 uint32_t,对于我编写的将这些数字转换为 ASCII 格式的不同程序(该程序要求uint32_t 用于转换)。

到目前为止我的计划:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

/*
* Program to iterate through all lines in file and put them in given vector
*
*/
bool getFileContent(std::string fileName, std::vector<std::string> & vecOfStrs)
{

// Open the File
std::ifstream in(fileName.c_str());

// Check if object is valid
if(!in)
{
std::cerr << "Cannot open the File : "<<fileName<<std::endl;
return false;
}

std::string str;
// Read the next line from File untill it reaches the end.
while (std::getline(in, str))
{
// Line contains string of length > 0 then save it in vector
if(str.size() > 0)
vecOfStrs.push_back(str);
}
//Close The File
in.close();
return true;
}


int main()
{
//Store contents in this vector of strings
std::vector<std::string> vecOfStr;

// Get the contents of file in a vector
bool result = getFileContent("input_file.dat", vecOfStr);

// If above result is true
if(result)
{
// Iterate through the vector contents
for(std::string & line : vecOfStr)
{
//std::cout<<line<<std::endl; Ignore this print line, it is for debugging only to show that the vector has been correctly filled

//For each line, convert from string to uint32_t
std::vector<std::uint32_t>new_variable
new_variable.assign(vecOfStr.begin(), vecOfStr.end());

}
}
}

在我上面的尝试中,在“//Iterate through the vector contents”注释下方的 for 循环中,我试图将每一行从 stringuint32_t 使用 vector::assign 函数。我在研究我的问题时这样做了,并从另一个 SO 问题中找到了这个函数:fastest way to convert a std::vector to another std::vector (作者:弗拉德,2011 年 10 月 26 日 7:36 回答)。当我尝试运行此代码时,收到以下 error 消息:

error: cannot convert ‘std::__cxx11::basic_string<char>’ to ‘unsigned int’ in initialization

总结:

如何逐行读取文件内容,并将每一行转换为数据类型uint32_t?我确保每行等于 32 位。

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