Форум программистов, компьютерный форум CyberForum.ru

добавить в програму проверку - C++

Восстановить пароль Регистрация
 
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
12.01.2012, 12:00     добавить в програму проверку #1
есть программа которые считывают из файла текст и выводит строки с двузначными элиментами, а надо чтоб выводил строки имено с цифрами содержащие двузначные элименты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <sstream>
 
int main(){
  std::vector<std::string> matr;
  std::string tmp;
  std::ifstream fin("text.txt");
  while(!fin.eof()){
    getline(fin, tmp);
    matr.push_back(tmp);
  }
  for(size_t i = 0; i < matr.size(); ++i){
    tmp = matr[i];
    bool flag = false;
    std::istringstream ist(matr[i]);
    while(ist >> matr[i])
      if( matr[i].length() ==  2 ) flag = true;
    if(flag) std::cout << tmp << '\n';
  }
  return 0;
 
}
Добавлено через 22 минуты
исправять надо в строках 15-21
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
12.01.2012, 12:06     добавить в програму проверку #2
Дык, проверить можно так:

C++
1
matr[i] > 9 && matr[i] < 100
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
12.01.2012, 12:18  [ТС]     добавить в програму проверку #3
когда добавляешь выходит кучу ошибок, тк этож стринг переменная
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 14:15     добавить в програму проверку #4
Можно так... поэлегантнее что-то ничего не придумалось
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using namespace std;
// ---------------------------------------------------------------------------
 
// ---------------------------------------------------------------------------
int _tmain( int argc, _TCHAR *argv[] )
{
    vector <string> matr;
    string tmp;
    ifstream fin;
 
    fin.open( "text.txt", ios_base::in );
    if ( fin.is_open( ) ) {
        cout << "file content:" << endl;
        while ( !fin.eof( ) ) {
            getline( fin, tmp );
            matr.push_back( tmp );
            cout << tmp << endl;
        }
        fin.close( );
 
        cout << endl << "2-sign numbers:" << endl;
        for ( size_t i = 0; i < matr.size( ); ++i ) {
            if ( matr[i].length( ) == 2 &&
                    isdigit( matr[i].c_str( )[0] ) &&
                    isdigit( matr[i].c_str( )[1] ) ) {
                cout << matr[i] << endl;
            }
        }
    }
    else {
        cout << "file open failed" << endl;
    }
    system( "pause" );
    return 0;
}
// ---------------------------------------------------------------------------
Вывод программы
file content:
2
32
666
35
ряЁ
hg
kl
12
hyt
18kl

ы7
0
00

2-sign numbers:
32
35
12
00
Для продолжения нажмите любую клавишу . . .
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
12.01.2012, 18:28  [ТС]     добавить в програму проверку #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using namespace std;
// ---------------------------------------------------------------------------
 
// ---------------------------------------------------------------------------
int _tmain( int argc, _TCHAR *argv[] )
{
    vector <string> matr;
    string tmp;
    ifstream fin;
 
    fin.open( "text.txt", ios_base::in );
    if ( fin.is_open( ) ) {
        cout << "file content:" << endl;
        while ( !fin.eof( ) ) {
            getline( fin, tmp );
            matr.push_back( tmp );
            cout << tmp << endl;
        }
        fin.close( );
 
        cout << endl << "2-sign numbers:" << endl;
        for ( size_t i = 0; i < matr.size( ); ++i ) {
            if ( matr[i].length( ) == 2 &&
                    isdigit( matr[i].c_str( )[0] ) &&
                    isdigit( matr[i].c_str( )[1] ) ) {
                cout << matr[i] << endl;
            }
        }
    }
    else {
        cout << "file open failed" << endl;
    }
    system( "pause" );
    return 0;
}
// ---------------------------------------------------------------------------
выводит ошибку: error C2061: синтаксическая ошибка: идентификатор "_TCHAR"

Добавлено через 16 минут
всё, спасибо за помощь, сделал) тока чуть по другому вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <vector>
#include <fstream>
#include <string>
#include <sstream>
using namespace std; 
int main(){
  std::vector<std::string> matr;
  std::string tmp;
  std::ifstream fin("text.txt");
  while(!fin.eof()){
    getline(fin, tmp);
    matr.push_back(tmp);
  }
  for(size_t i = 0; i < matr.size(); ++i){
    tmp = matr[i];
    bool flag = false;
    std::istringstream ist(matr[i]);
    while(ist >> matr[i])
      if ( matr[i].length( ) == 2 &&
       isdigit( matr[i].c_str( )[0] ) &&
       isdigit( matr[i].c_str( )[1] ) ) {
          std::cout << tmp << '\n';
                        }
                }
        system( "pause" );
        return 0;
}
// ---------------------------------------------------------------------------
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
12.01.2012, 18:33     добавить в програму проверку #6
Цитата Сообщение от Dima249 Посмотреть сообщение
выводит ошибку: error C2061: синтаксическая ошибка: идентификатор "_TCHAR"
Всего-то и надо, что заменить
C++
1
int _tmain( int argc, _TCHAR *argv[] )
на
C++
1
int main()
Но это я так, к слову... Знаете одну из смешных заповедей программиста? Работает - не трожь!
Yandex
Объявления
12.01.2012, 18:33     добавить в програму проверку
Ответ Создать тему
Опции темы

Текущее время: 00:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru