Я имею дело с прилагаемой строки, но в первую очередь, Кодекс:Строка Concat не работает как задумано
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main() {
string current;
string filename;
vector<string> vec(0);
cout << endl << "Bitte Name der Eingabedatei angeben:" << endl;
cin >> filename;
ifstream infile(filename);
while(std::getline(infile, current)) {
vec.push_back(string(current));
}
for(size_t i = 0; i < vec.size(); i++) {
string tmpLine = "";
int semiCount = 0;
//tmpLine.push_back('"');
for(size_t j = 0; j < vec[i].size(); j++) {
if(vec[i].at(j) == ';' && semiCount > 1) {
tmpLine += ("\"");
tmpLine += (",");
tmpLine += ("\"");
semiCount++;
} else if(vec[i].at(j) == ';' && semiCount == 0) {
tmpLine += (",");
tmpLine += (" ");
semiCount++;
} else if(vec[i].at(j) == ';' && semiCount == 1) {
string tmpName = tmpLine;
tmpLine += ("\"");
tmpLine += (",");
tmpLine += ("\"");
tmpLine += tmpName;
tmpLine += ("\"");
tmpLine += (",");
tmpLine += ("\"");
semiCount++;
} else {
tmpLine += vec[i].at(j); //seems to the problem
}
cout << tmpLine << endl;
}
tmpLine += ("dddd"); //works until here
cout << tmpLine << endl;
vec[i] = tmpLine;
}
return 0;
}
Я хочу, чтобы открыть файл и в основном переформатировать. Это прекрасно работает, пока я не хочу добавить что-то в строку, где я добавляю «dddd». Выход состоит в следующем:
.........................
Констанце, Адамек-Олбрих "(перед добавлением)
ddddtanze, Адамек-Олбрих "(после добавления)
..........................
Вместо добавления он до конца строки заменяет первый набор символов.
Я понятия не имею, почему это так. Удаление всего цикла и просто создание tmpLine = "test" делает работу над дополнением, но я не вижу проблемы в конце концов ...
EDIT: Решили проблему: в конце концов, кажется, невидимый персонаж строк, которые я импортирую из своего файла, что вызывает проблемы. Если я пропущу его, он будет работать.
Извините, если вопрос не задан правильно, это мой первый вопрос здесь, в StackOverflow!
Но спасибо за рассказ, я постараюсь сделать лучше в следующий раз!
является то, что [MCVE] (HTTPS: // stackoverflow.com/help/mcve)? – Deduplicator
@Deduplicator Не уверен! По крайней мере, есть стена кода, которая, вероятно, должна была быть передана в стороннюю онлайн-среду и собирать соответствующие части для примера здесь. Кроме того, очевидно, что отладки не было предпринято. –
Очевидно, вы не пробовали отлаживать свой код, как сказал @ πάνταῥεῖ. – cybermonkey