#include <iostream>
#include <stdio.h>
#include <string>
#include <fstream>
#include <Windows.h>
int main()
{
std::fstream myfile;
std::string parse_string,word;
std::string::size_type beg_idx = 0, end_idx = 0;
const std::string delim_string (" ");
int howManyStrings = 0;
bool onlyTwo = true;
myfile.open("file.txt",std::ifstream::in);
while(!myfile.eof())
{
beg_idx = 0, end_idx = 0;
getline(myfile,parse_string); //Ваш 2й пункт.
howManyStrings++; //Ваш 1й пункт.
/*Ваш 3й пункт написан очень убого. Приведите пример данных из файла. Я так понимаю это чтото подобное:
11 11 22 55 33 66 88 44 99
111 222 5555 8888 77 99
Если, и только если, я прав, то Вам поможет следующее:*/
while(std::string::npos != (beg_idx = parse_string.find_first_not_of( delim_string, end_idx )))
{
if ( std::string::npos == (end_idx = parse_string.find_first_of( delim_string, beg_idx )) )
{
word = parse_string.substr ( beg_idx );
if(word.size()!=2){onlyTwo = false;break;}
}
else
{
word = parse_string.substr ( beg_idx, end_idx - beg_idx );
if(word.size()!=2){onlyTwo = false;break;}
}
}
if (onlyTwo)
std::cout << parse_string << std::endl;
}
std::cout << "string number: " << howManyStrings << std::endl;
system("pause");
return 0;
}
работа с файлами
считывает текст из файла и выводит на экран только строки,
содержащие двузначных чисел.
Код: