С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 26.11.2014
Сообщений: 2
1

Считывание из текстового файла значения int

26.11.2014, 14:44. Показов 959. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сама задача:
Задан файл целых чисел. Убрать из него числа, символьное представление которых не содержит заданной литеры - цифры. Составить программу.

Есть рабочий код программы, но проблема в том что я считываю значения типа char и перевожу их в int (с помощью atoi). А нужно сделать чтобы программа из текстового файла сразу считывала значения int. Как именно это сделать я ума не приложу.

Код программы с++
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//---------------------------------------------------------------------------
 
#include <iostream>
#include <fstream>
 
#include <string>
#include <stdlib>
#include<cstring>
using namespace std;
 
int main()
{
    char line[150];
    char stroka[150];
    char adres[100];
    char* stroka2;
    char* v1;
    char* stroka3;
    ifstream dop;
    ifstream ifs;
    ofstream ofs;
    ofstream text;
    bool q=true;
    int word,k,k1,v;
 
    cout<<"Vvedite adres : ";
    cin>>adres;
    cout<<"Vvedite cifri dly delete stroki : ";
        cin>>word;
    ifs.open(adres);
    if (!ifs.good()) {
    cout<<"Fail can't open \n" ; }
    else
    { ofs.open("F:\\OOP\\лаба4\\Debug\\dop.txt");
        if (!ofs.good()) {
    cout<<"Fail can't open \n" ; }
        while (!ifs.eof())
       while (ifs.getline(line,150))
          {strcpy(stroka, line);
               stroka2="";
               v1=strtok(line," ");
             while (v1!=NULL) {
             v= atoi(v1);
              q=false;
             k1=v;
               while (k1 != 0)
  {  k=k1%10; k1=k1/10;
  if (k==word) {q=true; break;
  } } if (q) {     ofs<<v1<<" ";
  ;
 
  } v1=strtok(NULL," ");
 }ofs<<'\n';
 }
}
       ifs.close();
      ofs.close();
      dop.open("F:\\OOP\\лаба4\\Debug\\dop.txt");
      if (!dop.good()) {
    cout<<"Fail can't open \n" ; }
    else
    { text.open(adres);
        while (!dop.eof())
       while (dop.getline(line,150))
        text<<line<<'\n';}
        dop.close();
      text.close();
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2014, 14:44
Ответы с готовыми решениями:

Открытие текстового файла на считывание и вывод значения на экран
Добрый вечер. Подскажите совсем начинающему программисту, не могу никак разобраться как открыть...

Считывание текстового файла
Вот сам файл Я считываю символ в отдельное поле класса, потом 2 цифры после символа в отдельные 2...

Считывание из текстового файла
Нужно модифицировать программу. Чтобы пользователь вводил текст НЕ в диалоговом окне, а текст был...

Считывание из текстового файла
Как в матлабе считать данные с текстового файла? Точнее правильно считать, например, двойной...

2
37 / 31 / 5
Регистрация: 30.04.2014
Сообщений: 1,012
26.11.2014, 15:22 2
Открывай файл не в текстовом режиме а в бинарном.
0
0 / 0 / 1
Регистрация: 26.11.2014
Сообщений: 2
01.12.2014, 15:34  [ТС] 3
Сделал
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//---------------------------------------------------------------------------
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib>
#include<cstring>
using namespace std;
 
int main()
{
    char line[150];
    char adres[100];
    char x;
    ifstream dop;
    ifstream ifs;
    ofstream ofs;
    ofstream text;
    int number,v,v1,c,l;
 
    cout<<"Vvedite adres : ";
    cin>>adres;
cout<<"Vvedite cifri dly delete stroki : ";
    cin>>number;
   ifs.open(adres);
    if (!ifs.good()) {
    cout<<"Fail can't open \n" ; }
    else
    { ofs.open("F:\\OOP\\лаба4\\Debug\\dop.txt");
        if (!ofs.good()) {
    cout<<"Fail can't open \n" ; }
       while (!ifs.eof())      {
           l=0;
           ifs>>v;
           x=ifs.get();
           if (x=='\n'){l++;}
           c=v;
 
           while (v != 0){
            v1=v%10;
             v=v/10;
             if (v1==number) {ofs<<c<<" ";}
                          }
             if (l==1) {ofs<<'\n';}
                           }
               }
       ifs.close();
      ofs.close();
      dop.open("F:\\OOP\\лаба4\\Debug\\dop.txt");
      if (!dop.good()) {
    cout<<"Fail can't open \n" ; }
    else
    { text.open(adres);
        while (!dop.eof())
       while (dop.getline(line,150))
        text<<line<<'\n';}
        dop.close();
      text.close();
    system("pause");
    return 0;
}
0
01.12.2014, 15:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2014, 15:34
Помогаю со студенческими работами здесь

Считывание с текстового файла
Здравствуйте. У меня вот такой вопрос. Мне нужно загружать данные из текстового файла в М-файл...

Считывание текстового файла
Коллеги! Уперся в стену непонимания. Есть файл с данными, такого вида: 2015.11.02...

Считывание из текстового файла
Получил заданий от преподавателя: &quot;Сделать программу, желательно на C++, которая позволит считывать...

Считывание текстового файла
Здравствуйте, уважаемые форумчане. Была задачка - написать программу, которая выводит на экран...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru