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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 67, средняя оценка - 4.93
Garred
282 / 80 / 4
Регистрация: 19.04.2011
Сообщений: 219
#1

Считывание чисел из файла с расширением .txt - C++

17.09.2011, 21:28. Просмотров 10207. Ответов 11
Метки нет (Все метки)

Решаю на с++ задачу, которая называется «Вырубка деревьев». Входными данными являются два целых числа, записанных через пробел в файле .txt. Помогите считать эти числа из файла и записать их в переменные типа int. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2011, 21:28     Считывание чисел из файла с расширением .txt
Посмотрите здесь:
C++ Построчное считывание файла txt в массив
Считывание double чисел из txt в массив C++
C++ Считать 10 целых чисел с файла 1.txt и записать в файл 2.txt максимальный элемент и его индекс
C++ написать программу,которая считает 10 чисел из файла 1.txt и запишет в новый файл максимальное из этих чисел.
C++ В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt
C++ Считывание слов и чисел из файла
C++ Считывание отрицательных чисел из файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
Заблокирован
17.09.2011, 23:59     Считывание чисел из файла с расширением .txt #2
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
#include<iostream>
#include<fstream>
#include<cstring>
 
int main(){
 
    int x, y;
    char *file = "/home/username/documents/file.txt";
    std::string str;
 
    /* инициируем файловый поток */
    std::ifstream ifs(file);
 
    /* обработка исключения */
    if(!ifs.is_open()){
        std::cerr << "Error: file " << file << "is not open\n";
        return 1;
    }
    /* считываем данные в строку */
    else
        while(getline(ifs, str))
            std::cout << str << "\n";
 
    /* закрываем поток */
    ifs.close();
 
    return 0;
}
Добавлено через 1 час 37 минут
может как-то получше организовать можно...
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<cstring>
#include<cmath>
 
//int chislo_y(std::string tmp, int razr);
int chislo(char* tmp, int razr);
 
int main(){
 
    int x, y, tmp, i = 0, count = 0;
    char *file = "/home/chertopolox/documents/file.txt";
    std::string str;
 
    /* инициируем файловый поток */
    std::ifstream ifs(file);
 
    /* обработка исключения*/
    if(!ifs.is_open()){
        std::cerr << "Error: file " << file << "is not open\n";
        return 1;
    }
    /* считываем файл, конвертируем и выводим результат*/
    else
        while(getline(ifs, str)){
            
            /* работаем число х*/
            while (str[i] != ' '){
                ++count; ++i;
            }
            x = chislo(&str[0], count);
            
            count = 0; ++i;
            
            /* работаем число y*/
            while(str[i]){
                ++count; ++i;
            }
            y = chislo(&str[i - count], count);
            count = 0; i = 0;
            
            /* вывод результата */
            std::cout << x << " "<< y << "\n";
        }
 
    /* закрываем поток */
    ifs.close();
 
    return 0;
}
 
int chislo(char *tmp, int razr){
    int temp, chislo_ = 0, dec = 10, i = 0;
    temp = pow(dec, razr);
    while(temp != 1){
        chislo_ = chislo_ + (tmp[i] - '0') * temp;
        temp /= dec; ++i;
    }
    return chislo_ / dec;
}
входные данные
Код
 file.txt:
100 31
221223 1
3 00105
вывод:
Код
/Debug$ ./tmp 
100 31
221223 1
3 105
Garred
282 / 80 / 4
Регистрация: 19.04.2011
Сообщений: 219
18.09.2011, 14:59  [ТС]     Считывание чисел из файла с расширением .txt #3
Alkagolik, вбиваю ваш код из второго примера, компилятор выдает такую ошибку:
error C2065: 'getline' : undeclared identifier
и ругается на 25 строку в коде. Не могу понять, в чем дело.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.09.2011, 15:03     Считывание чисел из файла с расширением .txt #4
C++
1
std::getline
Garred
282 / 80 / 4
Регистрация: 19.04.2011
Сообщений: 219
18.09.2011, 15:10  [ТС]     Считывание чисел из файла с расширением .txt #5
С std::getline; выдает две ошибки:
error C2039: 'getline' : is not a member of 'std'
error C2065: 'getline' : undeclared identifier
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
18.09.2011, 15:11     Считывание чисел из файла с расширением .txt #6
Garred,
C++
1
#include <string>
Garred
282 / 80 / 4
Регистрация: 19.04.2011
Сообщений: 219
18.09.2011, 15:23  [ТС]     Считывание чисел из файла с расширением .txt #7
С #include<string> выдает такие ошибки:
warning C4551: function call missing argument list
error C2568: 'identifier' : unable to resolve function overload
Ругается на
C++
1
std::getline;
error C2065: 'getline' : undeclared identifier
Ругается на
C++
1
while(getline(ifs, str))
alkagolik
Заблокирован
18.09.2011, 15:57     Считывание чисел из файла с расширением .txt #8
код бы правленый выложил.
меняй
C++
1
while(getline(ifs, str))
на
C++
1
while(std::getline(ifs, str)) //cin.getline(), std::cin.getline()
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.09.2011, 15:58     Считывание чисел из файла с расширением .txt #9
#include <string>

std::getline()
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
18.09.2011, 16:02     Считывание чисел из файла с расширением .txt #10
Цитата Сообщение от kazak Посмотреть сообщение
std::getline()
Не обязательно
Garred
282 / 80 / 4
Регистрация: 19.04.2011
Сообщений: 219
18.09.2011, 16:07  [ТС]     Считывание чисел из файла с расширением .txt #11
Благодарю. Все ошибки исправил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2011, 16:08     Считывание чисел из файла с расширением .txt
Еще ссылки по теме:
C++ Считывание целых чисел из файла
C++ Считывание чисел из файла в массив
C++ Считывание из файла чисел с плавающей точкой
Считывание чисел из файла и запись их в массив C++
Считывание с файла чисел и букв, сортировка C++

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

Или воспользуйтесь поиском по форуму:
alkagolik
Заблокирован
18.09.2011, 16:08     Считывание чисел из файла с расширением .txt #12
уже не в первый раз вижу что gcc подхватывает то, что форточный компилятор выплевывает.
Yandex
Объявления
18.09.2011, 16:08     Считывание чисел из файла с расширением .txt
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru