Как подсчитать количество цифр в файле txt?
Я уже пытался что-то реализовать, но безуспешно. В файле текст + цифры. Мне нужно подсчитать именно количество цифр
Вот мой код:
#include<iostream>
#include <cstdlib>
#include <string>
#include <fstream>
using namespace std;
int main()
{
int num;
int k = 0;
ifstream file("open1.txt");
//string str;
if (!file)
{
cout << " file is not found" << endl;
exit(1);
}
while (file >> num)
{
k++;
}
cout << "Number in file:" << k << endl;
file.close();
return 0;
}
Ответы (2 шт):
Автор решения: Nikita Kalitin
→ Ссылка
Попробуйте вот такой код:
#include <iostream>
#include <cstdlib>
#include <string>
#include <fstream>
/*подключим функцию isdigit()*/
#include <ctype.h>
using namespace std;
int main() {
int k = 0;
ifstream file("input.txt");
//если файл открылся
if(file.is_open()){
char mychar; /*переменная буфер для посимвольного чтения*/
while (file)
{
mychar = file.get();
if(isdigit(mychar)){ /*если считанный символ - цифра, увеличим счётчик*/
k++;
}
}
}
cout << "Number in file:" << k << endl;
file.close();
return 0;
}
Автор решения: Mikhailo
→ Ссылка
Если именно цифр то вполне достаточно четырех строк:
ifstream file("open1.txt");
int k = 0;
for(char c; file>>c; k += isdigit(c)!=0);
cout << k;
Если файл не открылся, выведет 0.
Если вы хотите что-то делать с ними - что именно, непонятно, ПОЛУЧИТЬ В КОНСОЛЬ это что-то странное... - то
ifstream file("open1.txt");
int k = 0;
for(char c; file>>c; ) {
if (isdigit(c)) {
++k;
// Тут вы ПОЛУЧАЕТЕ В КОНСОЛЬ символ с
}
};
cout << k;