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

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

Войти
Регистрация
Восстановить пароль
 
wesleepforever
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 13
#1

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

27.06.2011, 22:36. Просмотров 423. Ответов 5
Метки нет (Все метки)

В текстовом файле содержатся положительные целые числа,
разделенные пробелами. Перепишите в другой текстовый файл
максимальное количество чисел из первого файла, но чтобы их сумма
не превышала заданного значения.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2011, 22:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос текстовый файл (C++):

Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл - C++
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый...

Текстовый файл UTF-8 сохранить как текстовый файл ANSI - C++
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами c++? Среда Visual Studio 2010 ...

Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла - C++
Дано число k (&lt; 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного...

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с...

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым - C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f...

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый - C++
Всем привет. Есть такая задачка: &quot;текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый&quot; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nameless
Эксперт C++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
27.06.2011, 23:03 #2
wesleepforever,

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
#include <iterator>
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstdlib>
 
int main()
{
    std::ifstream input("input.txt");
    std::ofstream output("output.txt");
    std::vector <int> number_vector;
    int number = 30;
 
    if (!input.is_open())
    {
        std::cout << "Error. Can't open file." << std::endl;
        std::cin.get();
        _exit(EXIT_FAILURE);
    }
 
    std::istream_iterator <int> input_it(input);
    std::istream_iterator <int> eof;
    while (input_it != eof)
        number_vector.push_back(*input_it++);
 
    int sum = 0;
    std::vector <int> result_vector;
    std::sort(number_vector.begin(), number_vector.end());
    for (std::vector <int>::iterator it = number_vector.begin(); it != number_vector.end() && sum + *it < number; ++it)
    {
        result_vector.push_back(*it);
        sum += *it;
    }
 
    if (!output.is_open())
    {
        std::cout << "Error. Can't open file." << std::endl;
        std::cin.get();
        _exit(EXIT_FAILURE);
    }
 
    std::ostream_iterator <int> output_it(output, " ");
 
    std::copy(result_vector.begin(), result_vector.end(), output_it);
        
    std::cin.get();
    return 0;
}
1
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
27.06.2011, 23:04 #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
#include <iostream>
#include <fstream>
#include <vector>
#define chislo 47
using namespace std;
 
int main(){
 
 //Ссчитаем файл в вектор
 ifstream is ("data.txt");
 if (!is)
  return 1;
 vector<int> vec;
 int temp;
 while (is>> temp)
  vec.push_back(temp);
 is.close ();
 
 //сортирнём вектор
 sort (vec.begin(), vec.end(), less<int>()); 
 int sum= 0;
 int i= 0;
 for (; i< vec.size(); i++) {
  sum+= vec[i];
  if (sum> chislo)
   break;
 }
 
 //Перегониим куда надо
 ofstream os ("data_.txt");
 if (!os)
  return 1;
 for (int j= 0; j<i ; j++) {
  os<< vec[j]<<" ";
 }
 os.close ();
 
 return 0;
}
1
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
27.06.2011, 23:43 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <iterator>
#include <set>
 
int main(){
    std::fstream fs("1.txt");
    if(!fs){std::cerr<<"File not found\n"; return 1;}
    std::multiset<unsigned> unSet((std::istream_iterator<unsigned>(fs)), std::istream_iterator<unsigned>());
    fs.close();
    unsigned val, sum=0;
    std::cout<<"val= ";
    std::cin>>val;
    fs.open("2.txt", std::ios::out);
    for(auto it=unSet.begin(); it!=unSet.end()&&(sum+=*it)<=val; ++it){
        fs<<*it<<"\n";
    }
    fs.close();
    return 0;
}
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
28.06.2011, 00:19 #5
igorrr37,подскажи, чё у меня не пишется в файл?
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 <fstream>
#include <iterator>
#include <set>
 
int main(){
    std::fstream fs("data.txt");
    if(!fs){std::cerr<<"File not found\n"; return 1;}
    std::multiset<unsigned>:: iterator j;
    std::multiset<unsigned> unSet((std::istream_iterator<unsigned>(fs)), std::istream_iterator<unsigned>());
    fs.close();
    unsigned val, sum=0;
    val= 47;
    fs.open("data_.txt",std::ios::out|std::ios::trunc);
    for(j=unSet.begin(); j!=unSet.end()&&(sum+=*j)<=val; ++j){
        printf ("==%d\n", *j); 
        fs<<*j<<"\n";
    }
    fs.close();
    getchar ();
    return 0;
}
Значения на консоль выводятся нормально, файл data_.txt пустой

Добавлено через 11 минут
Так работает, но у меня две переменых, fs и fs_, а хотелось бы обойтись одной, как у тебя.
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 <fstream>
#include <iterator>
#include <set>
 
int main(){
    std::ifstream fs("data.txt");
    if(!fs){std::cerr<<"File not found\n"; return 1;}
    std::multiset<unsigned>:: iterator j;
    std::multiset<unsigned> unSet((std::istream_iterator<unsigned>(fs)), std::istream_iterator<unsigned>());
    fs.close();
    unsigned val, sum=0;
    val= 47;
    std::ofstream fs_("data_.txt");
    for(j=unSet.begin(); j!=unSet.end()&&(sum+=*j)<=val; ++j){
        printf ("==%d\n", *j); 
        fs_<<(int)*j<<" ";
    }
    fs_.close();
    getchar ();
    return 0;
}
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
28.06.2011, 00:39 #6
возможно fs.good() сброшен, хотя у меня и без clear() работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <iterator>
#include <set>
 
int main(){
    std::fstream fs("data.txt");
    if(!fs){std::cerr<<"File not found\n"; return 1;}
    std::multiset<unsigned>:: iterator j;
    std::multiset<unsigned> unSet((std::istream_iterator<unsigned>(fs)), std::istream_iterator<unsigned>());
    fs.clear();
    fs.close();
    unsigned val, sum=0;
    val= 47;
    fs.open("data_.txt",std::ios::out|std::ios::trunc);
    for(j=unSet.begin(); j!=unSet.end()&&(sum+=*j)<=val; ++j){
        std::cout<<*j<<"\n";
        fs<<*j<<"\n";
    }
    fs.close();
    getchar ();
    return 0;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2011, 00:39
Привет! Вот еще темы с ответами:

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл - C++
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как выглядит текстовый файл: 11122 Mary...

Задан текстовый файл, необходимо по нему сформировать двоичный файл индексов - C++
Нужна помощь! Задача: Задан текстовый файл, необходимо по нему сформировать двоичный файл индексов (смещений начал строк в текстовом...

Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» - C++
Прошу помочь с задачей.Теории не было, сразу практика.Должны своими мозгами , но моих не хватает. Это последняя задача и завтра зачет.=/ ...

дан текстовый файл.определить количество нечетных чисел и записать их в др текст файл - C++
Очень Простая задача


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.06.2011, 00:39
Ответ Создать тему
Опции темы

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