программа работает по разному под linux и windows (C++)

220
11 апреля 2017, 11:44

Есть небольшая программа, я использовал только стандартную библиотеку, но она по разному работает под linux и windows

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
vector<string> parce(string s)
{
    string ts;
    vector<string> sv;
    for(int i = 0; i < s.size(); ++i)
    {
        while (s[i] == ' ' &&  i < s.size()){ ++i;}
        if (s[i] == '\"')
        {
            ++i;
            while(s[i] != '\"' &&  i < s.size())
            {
            ts.push_back(s[i]);
            ++i;
            }
            sv.push_back(ts);
        } else {
        while (s[i] != ' ' &&  i < s.size())
        {
            ts.push_back(s[i]);
            ++i;
        } sv.push_back(ts);}
        ts.clear();
    }
 for(int i = 0; i < sv.size(); ++i)
        cout << "{" << sv[i] << sv[i].size() << "}" << endl;
    return sv;
}
int main() {
    ifstream uiFile;
    uiFile.open("ui.ui");
    string g;
    while (getline(uiFile, g))
        parce(g);
    return 0;
}

вот файл который читает

pic:
  name: "1.bmp"
  pos: 0 0
end
pic:
  name: "5.bmp"
  pos: 100 100
end
pic:
  name: "back.bmp"
  pos: 20 400
  action: load: "ui.ui"
end

Выдаёт в консоль какой то бред

5}ic:
{name4}
{data/splash11}
1}
4}nd

В Windows всё норм, ума не приложу что делать. Под Windows компилировал MinGW а под Linux g++

READ ALSO
Связь между классами

Связь между классами

Есть: Список работ выполняемых сотрудникомСписок содержит Ф

194
Считывание с файла. С++

Считывание с файла. С++

Почему появляется эта ошибка? Когда я не использую !file2eof, ошибка не возникает

192
Проблема с boost

Проблема с boost

Компилирую проект с бустомКомпилируется нормально, при линковке постоянно вылетает ошибка:

329