c++ - 将字符串 vector 转换为 int

标签 c++ string vector atoi

我必须制作一个程序,从文件中为学生读取信息,我制作了几个 vector 来保存所有这些信息。但是后来我需要总结所有学生的缺勤,所以我需要将它们转换为整数,但是当我尝试程序运行时,但是当它到达 atoi 部分时立即崩溃。

while(!read.eof()) {
    if(i==4){
        i=0;
    }

    read>>b;

    if(i==0){ names.push_back(b); }
    if(i==1){ last_name.push_back(b); }
    if(i==2){ absences.push_back(b); }
    if(i==3){ unatoned.push_back(b); }
    i++;
}

int a = atoi(absences[0].c_str());

最佳答案

如果 absences 保持为空,则 absences[0] 的行为未定义

absences 为空时使用 absences.at(0) 会强制编译器抛出异常,因此更易于使用。

无论哪种方式,对于缺席次数,只需使用

auto a = absences.size();

关于c++ - 将字符串 vector 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54984396/

相关文章:

c++ - 使用 C++ 连接到 MS Access

c++ - OpenMP:如何在每个线程中使用递归函数?

c++ - 阅读 double 和单词,并根据阅读的内容执行 Action

python - 什么是特征哈希(hashing-trick)?

c++ - 如何在子类的 vector 上应用多态函数

c++ - 找出是否在共享库中调用了函数

c++ - 在 apache qpid 中如何列出经纪人状态?

Java:在空间中将字符串剥离到数组的方法?

string - 如何在 Tcl 中将字符串转换/转换为 boolean 值?

c++ - 为什么我指向 std::vector 元素的指针在 push_back() 之后改变了它的值?