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

Текстовые файлы - C++

Восстановить пароль Регистрация
 
melkaya19
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 19
02.07.2010, 00:44     Текстовые файлы #1
Помогите пожалуйста с программой. Она должна выводить все числа встеченные в программе (числом считать только те которые состоят только из цифр).
Например из wfwef, 2312 wfew we443 wfwqdqaf 9980 только 2312 и 9980 а у меня выводит еще и 443
Что надо добавить в код что бы было правильно?



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
37
38
39
40
41
42
43
44
#include <fstream>
#include <iostream>
using namespace std;
 
int main() {
    int i = 0;
    bool repeat = true;
    char a,r_char,c = ' ';
    char filename[70];
    while(repeat == true) {
          cout << "Vvedite nazvanie faila...\n";
          cin >> filename;
          fstream fin,fout;
          
          fin.open(filename,ios::in); 
          if(fin.is_open()) { 
              fout.open("output.txt",ios::out);
              fin.get(a);
              while(fin) {
                  if(a>='a' && a<='z' || a==',' || a=='.' || a==' ' || a==')' || a=='(' || a==']' || a=='[' || a=='!' || a=='?') {
                  
                      if(i!=0) {
                          fout.put(c);
                          i = 0; 
                                  
                      }             
                } else {
                      i++;   
                      fout.put(a);        
                  }
                  fin.get(a);
              }
              fin.close();
              fout.close();
          } else {
              cout << "Oshibka pri otkritii faila...\n";
          }
          cout << "Nachatj zanovo? y/n" << endl;
          cin >> r_char;
          if (r_char == 'y' || r_char == 'Y') repeat = true;
          else repeat = false;
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2010, 00:44     Текстовые файлы
Посмотрите здесь:

C++ Текстовые файлы
C++ Текстовые файлы в C++
C++ Текстовые файлы
C++ Текстовые файлы
C++ нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.07.2010, 02:35     Текстовые файлы #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <sstream>
 
int main(){
    std::string buf;
 
    while ( true ){
        std::cout << "String: ";
        std::getline(std::cin, buf);
        if ( buf.empty() )
            break;
        std::istringstream ist(buf);
        std::cout << "Numbers: ";
        while ( ist >> buf )
            if ( buf.find_first_not_of("0123456789") == std::string::npos )
                std::cout << buf << ' ';
        std::cout << std::endl;
    }
 
    return 0;
}
melkaya19
0 / 0 / 0
Регистрация: 03.10.2009
Сообщений: 19
02.07.2010, 06:45  [ТС]     Текстовые файлы #3
Спасибо конечно, но это немного не то Я забыла сказать, считывать можно лишь по одному символу, строку нельзя. И не желательно использовать другие библиотеки кроме fstream и iostream.

Добавлено через 4 часа 2 минуты
Никто не может помочь?
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.07.2010, 10:22     Текстовые файлы #4
melkaya19, считай посимвольно в buf сначла, а потом работай со строкой
MrTwister
 Аватар для MrTwister
0 / 0 / 0
Регистрация: 13.07.2008
Сообщений: 34
16.08.2010, 10:31     Текстовые файлы #5
Привет всем!Помогите плиз с такой проблемкой!Есть текстовый файл нужно нати человека (пользователь вводит табельный номер и программа ищет в txt файле строку с этим значением и записывает в переменную значение "Часы" и "Сумму").
Пример текстового файла
|№ п\п|-|ФИО|-|Месяц|-|Часы|-|Сумма|
1 884 ФИО 1 1006 176.00 32437.00
2 1064 ФИО 2 1006 199.20 62888.00
3 1449 ФИО 3 1006 157.70 59922.00
4 1546 ФИО 4 1006 140.00 18424.00
5 2411 ФИО 5 1006 176.00 32437.00
6 2488 ФИО 6 1006 157.40 66639.00
7 3034 ФИО 7 1006 193.30 153349.00
8 3107 ФИО 8 1006 166.40 109121.00
9 3141 ФИО 9 1006 138.40 119801.00
10 3158 ФИО 10 1006 79.00 100050.00
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.08.2010, 04:26     Текстовые файлы #6
можешь читать по строке через fgets()
первую пропустить
прочитанную строку прочитать в структуру человека через sscanf()
проверить значение поля "номер" структуры человека
если он совпадаёт с запрошенным (запрошенный можно не запрашивать, а вручную установить выше, как будто он запрошен, введён и сохранён в переменную), то сохранить нужную инфу из структуры в переменные и остановить цикл

C
1
2
3
4
5
6
7
8
9
struct person {
    int no;
    int pp;
    char fio[MAXFIO];
    int month;
    int year;
    double hours;
    double summ;
};
колонки не соответствуют количеству полей, так что колонки переделаешь

Добавлено через 1 минуту
нужно ещё после цикла точно знать, найдено ли значение
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2010, 08:50     Текстовые файлы
Еще ссылки по теме:

C++ Текстовые файлы
C++ Текстовые файлы
C++ Текстовые файлы с++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrTwister
 Аватар для MrTwister
0 / 0 / 0
Регистрация: 13.07.2008
Сообщений: 34
17.08.2010, 08:50     Текстовые файлы #7
Вот незадача я в Delphi программирую!Немног новичок!
Yandex
Объявления
17.08.2010, 08:50     Текстовые файлы
Ответ Создать тему
Опции темы

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