2014-01-03 6 views
1

Я пытаюсь сделать биллинговую систему для ресторана моего отца только для практики. Таким образом, я столкнулся с проблемой, что я не могу прочитать полную строку один раз. Например, если в txt-файле был курица-курильщик, а компилятор читал их, но разбил их на два слова. Я использую следующий код, и файл уже существует.Чтение строки из файла C++

std::string item_name; 
std::ifstream nameFileout; 

nameFileout.open("name2.txt"); 
while (nameFileout >> item_name) 
{ 
    std::cout << item_name; 
} 
nameFileout.close(); 
+0

Это не компилятор читает эти слова, это исполняемый файл (ваша программа) это делать. –

+0

hmm.thanks Barak Manos. – user3139551

ответ

5

Чтобы прочитать всю строку, используйте

std::getline(nameFileout, item_name) 

вместо

nameFileout >> item_name 

Вы могли бы рассмотреть вопрос о переименовании nameFileout, так как это не имя, а для ввода не выход.

+0

спасибо за помощь me.and я использую имя, потому что я использую этот файл для имен продуктов. – user3139551

3

чтение построчно и технологические линии внутренне:

string item_name; 
ifstream nameFileout; 
nameFileout.open("name2.txt"); 
string line; 
while(std::getline(nameFileout, line)) 
{ 
    std::cout << "line:" << line << std::endl; 
    // TODO: assign item_name based on line (or if the entire line is 
    // the item name, replace line with item_name in the code above) 
} 
Смежные вопросы