C/C++

Написать программу, которая выводит числа из файла с текстом и числами. С++

Я написала программу:
#include
#include
using namespace std;
int main()
{
ifstream file("Text1.txt");
int a;
do
{
if (file >> a)
{
cout << a << endl;
}
else
{
file.clear();
file.ignore(1, ' ');
}
} while (!file.eof());
file.close();
return 0;
}

Она работает правильно, но преподаватель сказал, чтобы я написала её через специальную функцию для поиска чисел. Функцию он не сказал.
Что это за функция?
stod

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
string line = "-357.025 Kitty 27.56 Oops -2.014-e27 87ghf -0 -nan inf 000000 1.5e492";
istringstream iss(line);
string token;
while (iss >> token) {
try {
auto number = stod(token);
cout << number << '\n';
} catch (...) {
iss.clear();
}
}
cout.put('\n');
system("pause > nul");
}
ВП
Влад Петров
84 967
Лучший ответ
Дориан Грей я тут пыжился пол часа час написать функцию ей, написал отдельно функцию вставил туда atoi, возвращало все, потом еще решил привести пример ручного выписывания чисел string hello[i] > 48 && string hello[i] < 59; то запись в string числа. как то так.

а ты меня обломал да и код вообще не понятный написал.
Velikentli Terekemeli Спасибо большое за ответ, вроде разобралась в вашем коде...
Однако, преподаватель имел ввиду немного другое:
#include
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
char a;
ifstream fin;
fin.open("C:\\Users\\Text.txt");
if (fin.is_open()) \\Если файл открылся
{
cout « "Циферки из файлика" « endl;
while (!fin.eof()) \\пока не кончится
{
fin » a; \\считываем символ
if (isdigit(a)) \\число ли это
cout « a « endl; \\выводим
}
}
else \\если не открылся
cout « "Куда файл делся?" « endl;
return 0;
}

Это слишком просто оказалось.
Может он регулярные выражения имел ввиду?
Артём Малин
Артём Малин
10 661
Velikentli Terekemeli Не думаю. Мы только начали изучать язык...
Но я попробую.
Возможно имел ввиду, что нужно вынести алгоритм поиска и вывода цифр в отдельную функцию.
JM
Janat Mustafin
3 503
Velikentli Terekemeli А как это делается? В самой программе или в отдельном файле? (Прошу простить моё невежество)
//Я думаю вот что он говорил.

в с++ языке есть функция поиска или выписывания чисел из текста называется atoi() если хочешь гугли.

Я думаю он говорил тебе отделить функцию от программы.
То есть написать функцию отдельно, а в коде программы передать в функцию текст с которой нужно вывести числа.

#include
#include

using namespace std;

//Вот функция void "check_pass" принимает на вход данные
//"string password" string это текстовый тип данных.

//Значит можно передать в функцию текстовые данные, а дальше она
//будет там внутри колдовать.

она и колдует.

void check_pass (string password)
{
string valid_pass = "qwerty123";
if (password == valid_pass) {
cout << "Доступ разрешен." << endl;
} else {
cout << "Неверный пароль!" << endl;
}
}

int main()
{
string user_pass; // переменная для строк для текста.
cout << "Введите пароль: "; // вывод на экран
getline (cin, user_pass); // ввод данных с клавиат в user pass
check_pass (user_pass); // Вызов функции и передача ей введ данных
return 0;
}

вот еще.

#include
#include

using namespace std;

вот отдельная функция

void ekran (string ekran)
{
cout << ekran;
}

int main()
{
string text = "Моя 1 я функция";
ekran(text);
return 0;
}
Velikentli Terekemeli Мне кажется, это слишком сложно для 4 занятия... Нам вообще объяснили только как файл создавать и закрывать... А дальше сами выкручивайтесь. Это жизненно.
Velikentli Terekemeli Я забыла сказать спасибо. Извините.
Спасибо!

Похожие вопросы