/ / Четене до края на реда в C ++ - c ++, файл

Четене до края на реда в C ++ - c ++, файл

Имам текстов файл по следния начин:

Стинг Друг низ 0 12 0 5 3 8
Стинг Друго въже 8 13 2 0 6 11

И искам да преброя колко числа са там. Мисля, че най-добрият ми залог е да се използва, докато тип цикъл с условие да прекрати преброяването, след това започва друга линия, но не знам как да спра да чета в края на линията.

Благодаря предварително за помощта;)

Отговори:

11 за отговор № 1

Разделете си input поток в линии

std::string line;
while (std::getline(input, line))
{
// process each line here
}

За да разделите линия на думи, използвайте струнни потоци:

std::istringstream linestream(line); // #include <sstream>
std::string word;
while (linestream >> word)
{
// process word
}

Можете да повторите това за всяка дума, за да решите дали тя съдържа число. Тъй като не сте уточнили дали вашите номера са цели числа или не, ще предположим int:

std::istringstream wordstream(word);
int number;
if (wordstream >> number)
{
// process the number (count, store or whatever)
}

Отказ от отговорност: Този подход не е перфектен. Тя ще открие "номера" в началото на думи като 123abc, той също така ще позволи входния формат като string 123 string, Също така този подход не е много ефективен.


4 за отговор № 2

Защо не използваш getline()?


1 за отговор № 3

Край на реда е представен с знак "n". Поставете условието, докато цикълът ще свърши, когато срещне "n"