Так что я пишу программу, которая занимается чтением и записью в файл. Я использую функцию getline(), потому что некоторые из строк в текстовом файле могут содержать несколько элементов. До сих пор у меня никогда не было проблем с getline. Вот что я получил.C++ help с функцией getline с ifstream
Текстовый файл выглядит следующим образом:
John Smith // Client name
1234 Hollow Lane, Chicago, IL // Address
123-45-6789 // SSN
Walmart // Employer
58000 // Income
2 // Number of accounts the client has
1111 // Account Number
2222 // Account Number
И такой код:
ifstream inFile("ClientInfo.txt");
if(inFile.fail())
{
cout << "Problem opening file.";
}
else
{
string name, address, ssn, employer;
double income;
int numOfAccount;
getline(inFile, name);
getline(inFile, address);
// I'll stop here because I know this is where it fails.
Когда я отлажена этот код, я обнаружил, что имя == «Джон», вместо имени == «Джон Смит», а также адрес == «Смит» и т. Д. Я делаю что-то неправильно. Любая помощь приветствуется.
Эта программа компилируется и работает так, как ожидалось для меня. Вы уверены, что раньше у вас не было чего-то типа 'cin >> name; cin >> address; ', который вы заменили на' getline', и просто забудьте сохранить исходный файл и/или перекомпилировать программу перед повторным тестированием? –
WFM (работает для меня). Я вставлял ваш код в исходный файл, добавлял различные включительные и префиксы 'std ::', вставлял текст в файл 'ClientInfo.txt' (удаляя // комментарии), добавлял строку, печатающую' name' в 'std :: cout', составлен и запущен. «имя» было для меня «Джон Смит». –
Почему вы используете c-style 'getline' вместо' istream :: getline'? – dmckee