Как подсчитать количество цифр в файле txt?

Рейтинг: -1Ответов: 2Опубликовано: 23.03.2023

Я уже пытался что-то реализовать, но безуспешно. В файле текст + цифры. Мне нужно подсчитать именно количество цифр

Вот мой код:

#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;
}

Ответы

▲ 4

Если именно цифр то вполне достаточно четырех строк:

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;
▲ 1

Попробуйте вот такой код:

#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;
}