2014-02-21 34 views
0

我是C++的新手,問題是我無法將字符串轉換爲整數;你能幫忙嗎?無法將字符串轉換爲整數

container *beg = NULL; 
    container *insert; 
    insert = new container; 

    std::ifstream data(filename); 
    std::string line; 
    std::getline(data, line); 

    for (container *i = insert; std::getline(data, line); i = i->nextCont) 
    { 
     std::stringstream lineStream(line); 
     std::string cell; 
     i->ID = atoi(cell.c_str); 
     for (box *j = i->beginBox; std::getline(lineStream, cell, ';'); j = j->next) 
     { 
      j->apples = atoi(cell.c_str); 
     } 
    } 
    return beg; 

錯誤是:

錯誤4錯誤C3867: '的std :: basic_string的,性病::分配器> :: c_str':函數調用缺少參數列表;使用'& std :: basic_string,std :: allocator> :: c_str'來創建指向成員e:\ labs \ 3.container \ 3.container \ class.cpp的指針109 1 3.container

錯誤5錯誤C3867:'std :: basic_string,std :: allocator> :: c_str':函數調用缺少參數列表;使用'& std :: basic_string,std :: allocator> :: c_str'來創建一個指向成員e:\ labs \ 3.container \ 3.container \ class.cpp的指針112 1 3.container

+0

謝謝你們。對不起,一個愚蠢的問題。祝你今天愉快。 – Eugene

回答

3

也許add括號中實際調用它:

j->apples = atoi(cell.c_str()); 
          ^^^ 

而且,你可能要考慮其他方法將字符串轉換爲整數,如std::stoistrtolistringstream

1

c_str是一個字符串的方法,所以你需要調用它像cell.c_str()告訴編譯器是一種方法,而不是一個類成員

0

試試這個代碼

container *beg = NULL; 
container *insert; 
insert = new container; 

std::ifstream data(filename); 
std::string line; 
std::getline(data, line); 

for (container *i = insert; std::getline(data, line); i = i->nextCont) 
{ 
    std::stringstream lineStream(line); 
    std::string cell; 
    i->ID = atoi(cell.c_str()); 
    for (box *j = i->beginBox; std::getline(lineStream, cell, ';'); j = j->next) 
    { 
     j->apples = atoi(cell.c_str()); 
    } 
} 
return beg;