-1
구성 파일을 구문 분석하기 위해 stringstream을 사용했습니다. C++ 정수 변수는 텍스트 파일의 값을 할당하는 동안 잘 작동합니다. 그러나 구성 파일의 읽기 값을 C++ int16_t 변수에 할당하면 다른 값이 할당됩니다. 무슨 일이 일어나는지 모르겠다. 다음과 같은구성 파일에서 C++의 int16_t 변수에 변수 할당
void parseConfigurationFile(){
//Variables
int16_t int16_tValue;
int firstIntegerValue;
//File parsing code
std::ifstream fin(configFileName);
std::string line;
std::istringstream sin;
while (std::getline(fin, line))
{
sin.str(line.substr(line.find(":")+1));
if (line.find("firstIntegerValue") != std::string::npos) {
sin >> firstIntegerValue;
}
else if (line.find("int16_tValue") != std::string::npos) {
sin>>int16_tValue;
}
}
내 구성 파일이 보인다 :
이 내 코드입니다
firstIntegerValue : 12
int16_tValue : 55555
가능성이 잘못 무슨 갈 수 있는가? 나는 이것을 이해할 수 없었다.
'istringstream' 인스턴스를 만들기 전에'find '를 사용하여': '를 찾을 것을 제안합니다. –
'else-else' 래더에 마지막 else 절이 없습니다. –
디버거. 디버거를 사용하십시오. 디버거를 사용하면 코드에서 단계별로 변수를 볼 수 있습니다. 프로그램을 디버깅하는 것은 종종 StackOverflow에 올 바르고 누군가가 코드를 검사하거나 코드를 디버깅 할 때까지 기다리는 것보다 빠릅니다. 게시물을 디버깅 세션의 결과로 수정하십시오 (문제의 원인이되는 진술, 예상되는 동작 및 실제 동작을 나타냄). –