使用std :: stoi时stoi被打印到控制台

时间:2016-10-27 13:25:51

标签: c++11

鉴于每行包含一个整数的文件,我试图使用此代码读取文件并将数字存储在向量中。

奇怪的是,在读完文件后,我的程序正在打印字符串“stoi”。这只是std :: stoi的行为吗?我在文档中找不到任何相关内容。

我正在使用g ++ 6.2.1。

以下是相关代码:

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

void usage() {
    std::cout << "Usage: ./binary_tree [FILE]\n";
}

int main(int argc, char* argv[]) {
try{
     if (argc <= 1) {
         usage();
         return 1;
     }

     std::ifstream inputFile;
     inputFile.open(argv[1], std::ios::in);

     if (!inputFile.is_open()) throw std::runtime_error("Failed to open file");

     std::string line;
     std::vector<int> nums;

     while(!inputFile.eof()) {
         getline(inputFile, line);
         int num = std::stoi(line);
         nums.push_back(num);
     }

     // Clean up
     inputFile.close();
     return 0;
}

catch(const std::exception& e) {
    std::cerr << e.what() << std::endl;
}
}

0 个答案:

没有答案