2
考慮以下代碼:的std ::函數getline不會跳過空行
vector<string> parse(char* _config) {
ifstream my_file(_config);
vector<string> my_lines;
string nextLine;
while (std::getline(my_file, nextLine)) {
if (nextLine[0] == '#' || nextLine.empty() || nextLine == "") continue;
my_lines.push_back(nextLine);
}
return my_lines;
}
和這個配置文件:
#Verbal OFF
0
#Highest numeric value
100
#Deck
67D 44D 54D 63D AS 69H 100D 41H 100C 39H 10H 85H 7D 42S 6C 67H 61D 33D 28H 93S QH 5D 91C 40S 50C 74S 8C 98C 96C 71D 82S 75S 23D 40C 29S QC 84C 16C 80D 13H 35S
#Players
P1 1
P2 2
我的目標是解析配置文件到字符串矢量,逐行解析,忽略空行和'#'字符。
當運行在Visual Studio中的代碼,輸出是正確的,但在Linux上使用g運行++時,我仍然得到一些空行。
確定這些線路都是空的,並且不含有可能空格或製表符? –
在if語句裏面'nextLine.empty()'應該是第一個條件。 – 0x499602D2