converting string to int in C++

前端 未结 5 1524
南笙
南笙 2021-01-07 05:07

I am trying to convert a string I read in from a file to an int value so I can store it in an integer variable. This is what my code looks like:

ifstream sin         


        
相关标签:
5条回答
  • 2021-01-07 05:40

    Rather than using std::getline(std::string&, std::istream&), why not just use the stream extraction operator on the file?

    ifstream sin;
    sin.open("movie_output.txt");
    unsigned int year = 0;
    sin >> year;
    myMovie.setYear(year);
    
    0 讨论(0)
  • 2021-01-07 05:54
    #include <boost/lexical_cast.hpp>
    

    Use the lexical_cast:

    int value = boost::lexical_cast<int>(line);
    
    0 讨论(0)
  • 2021-01-07 05:56

    The quick fix is to use line.c_str() which provides a const char* for atoi().

    A better solution (if available) may be to use boost::lexical_cast(line). This is a neater version of the C++ism of pushing things into and out of a std::stringstream which has all the type conversions you are likely to need.

    0 讨论(0)
  • 2021-01-07 05:58

    You can do atoi(line.c_str())

    Another approach, using C++ streams, is:

    stringstream ss(line);
    unsigned int year;
    ss >> year;
    
    0 讨论(0)
  • 2021-01-07 06:00

    myMovie.setYear(atoi(line.c_str()));

    0 讨论(0)
提交回复
热议问题