안녕 난 C에 새로운 오전를 사용하여 ++ 및 할당을하려고하지 않고 int로 누군가가 문자열로 2 값을 읽은 다음 int로 변환하기 위해 stoi() 또는 atoi()를 사용하기 전에 도움을 요청했습니다. 이것은 컴파일 할 때 "-std = C++ 11"매개 변수를 사용해야하는 경우를 제외하고는 훌륭하게 작동합니다. 그렇지 않으면 오류가 반환됩니다. 이것은 "-std = C++ 11"을 처리 할 내 컴퓨터의 문제는 아니지만 불행히도 내 프로그램을 제시해야하는 컴퓨터에는이 옵션이 없습니다.C++ 문자열은 atoi 함수() 또는 stoi()
가 만약 내가 문자열이 그 stoi 또는 atoi 함수를 사용하지 않는 int로 변환 할 수있는 또 다른 방법은?
여기에 지금까지 내 코드입니다.while (getline(inputFile, line))
{
stringstream linestream(line);
getline(linestream, Surname, ',');
getline(linestream, Initial, ',');
getline(linestream, strnum1, ',');
getline(linestream, strnum2, ',');
number1 = stoi(strnum1);
number2 = stoi(strnum2);
dosomethingwith(Surname, Initial, number1, number2);
}
먼저, 'atoi'에는'-std = C++ 11 '이 필요하지 않습니다. 하지만 오류 검사를 허용하지 않기 때문에'atoi'를 피할 것입니다. 더 나은 해결책은'strtoi '일 것이다. –
그리고'stringstream'을 사용하는 데있어서이 매니아는 무엇입니까? 당신이 원하는 것은'istringstream'입니까? (나는 항상 그것을보고 누구가 그것을 할 것인가를 이해하지 못한다.) –
또한'istringstream' 대신에'boost :: split'과 같은 것을 사용할 것입니다. 'int'로 변환하는 문제는 여전히 열려 있습니다). –