#c #file
#c #файл
Вопрос:
У меня есть текстовый файл, подобный этому :
Ввод другой строки 0 12 0 5 3 8
Ввод другой строки 8 13 2 0 6 11
И я хочу посчитать, сколько там чисел. Я думаю, что лучше всего использовать while type cycle с условием завершения подсчета, после чего начинается другая строка, но я не знаю, как остановить чтение в конце строки.
Заранее спасибо за помощь 😉
Комментарии:
1. что у вас есть на данный момент?
Ответ №1:
Разделите ваш input
поток на строки
std::string line;
while (std::getline(input, line))
{
// process each line here
}
Чтобы разделить строку на слова, используйте stringstream:
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
. Также этот подход не очень эффективен.
Ответ №2:
Почему вы не используете a getline()
?
Ответ №3:
Конец строки представлен символом ‘n’. Поставьте условие в вашем цикле while для завершения, когда он встретит ‘ n’