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

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

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

файл!!! - C++

12.07.2011, 21:39. Просмотров 612. Ответов 13
Метки нет (Все метки)

Нужна помощь в создании файла на простом языке СИ. Буду благодарен.

Дан файл произвольного типа. Создать его копию с новым именем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2011, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос файл!!! (C++):

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

Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке - C++
Пожалуйста, помогите решить задачу в C++!!! Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но...

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

Дан файл. Записать в другой файл строки, которые являются палиндромами. - C++
Помогите пожалуйста с задачей: "Дан файл а. Записать в файл с те строки и их номера в исходном файле, которые являются...

Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке - C++
Собственно само задание. 4). Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке

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

13
KILKEN
6 / 6 / 0
Регистрация: 08.07.2011
Сообщений: 39
12.07.2011, 21:45 #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
#include <iostream>
#include <fstream>
#include <string>
#include <stdexcept>
 
void copy_file(const std::string& src, const std::string& dst) {
   std::ifstream in(src.c_str(), std::ios::binary);
   if ( !in ) {
      throw std::runtime_error("can`t open file: " + src);
   }
   std::ofstream out(dst.c_str(), std::ios::binary|std::ios::trunc);
   if ( !out ) {
      throw std::runtime_error("can`t create file: " + dst);
   }
   out << in.rdbuf();
}
 
int main(int argc, const char** argv)  {
   try {
      copy_file("test.txt", "test2.txt");
   } catch (const std::exception& e) {
      std::cout << e.what() << std::endl;
   }
 
   return 0;
}
1
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
12.07.2011, 21:51  [ТС] #3
А можно эту программу как-то на обычный Си переделать?
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
12.07.2011, 22:06 #4
KILKEN,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>
 
int main()
{
    std::ifstream input("input.txt");
    std::ofstream output("output.txt");
 
    std::copy(std::istream_iterator <char>(input), std::istream_iterator <char>(), std::ostream_iterator <char>(output));
 
    return 0;
}
Правда не на Си..)
1
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
12.07.2011, 22:10  [ТС] #5
Переделайте пожалуйста на обычный стандартный язык СИ.
0
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
12.07.2011, 22:37 #6
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
#include <stdio.h>
#include <stdlib.h>
 int main ( )
{
   const char* in_file = "file.txt";
   const char* out_file = "file2.txt";
 
   char *text;
   unsigned size;
   FILE *in, *out;
   in = fopen( in_file,"rb");
   if ( !in) return 0;
   fseek( in, 0, SEEK_END);
   size = ftell( in);
   rewind ( in);
   text = (char*) malloc( size);
   fread ( text, sizeof(char), size, in);
   fclose( in);
 
   out = fopen( out_file, "wb");
   if ( !out) return 0;
   fwrite ( text, sizeof(char), size, out);
   fclose( out);
   free( text);
 
   return 0;
}
1
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
12.07.2011, 23:12 #7
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main()
{
   const char* in_file = "file.txt";
   const char* out_file = "file2.txt";
 
   int ch;
   FILE *in = NULL, *out = NULL;
 
   in = fopen( in_file,"rb");
   if (!in)
      return 1;
   out = fopen( out_file, "wb");
   if (!out)
      return 2;
   while ((ch = fgetc(in)) != EOF)
      fputc(ch, out);
   fclose(in);
   fclose(out);
   return 0;
}
1
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
12.07.2011, 23:20  [ТС] #8
Цитата Сообщение от kazak Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main()
{
   const char* in_file = "file.txt";
   const char* out_file = "file2.txt";
 
   int ch;
   FILE *in = NULL, *out = NULL;
 
   in = fopen( in_file,"rb");
   if (!in)
      return 1;
   out = fopen( out_file, "wb");
   if (!out)
      return 2;
   while ((ch = fgetc(in)) != EOF)
      fputc(ch, out);
   fclose(in);
   fclose(out);
   return 0;
}
Эта программа почему-то не создает новый файл?
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
12.07.2011, 23:30 #9
Цитата Сообщение от TambowsWolf Посмотреть сообщение
Эта программа почему-то не создает новый файл?
Или не может найти исходный?
Попробуй такой вариант и следи за сообщениями:
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   const char* in_file = "file.txt";
   const char* out_file = "file2.txt";
 
   int ch;
   FILE *in = NULL, *out = NULL;
 
   in = fopen( in_file,"rb");
   if (!in)
   {
      printf("Can't open input file\n");
      system("pause");
      return 1;
   }
   out = fopen( out_file, "wb");
   if (!out)
   {
      printf("Can't open output file\n");
      system("pause");
      return 2;
   }
   while ((ch = fgetc(in)) != EOF)
      fputc(ch, out);
   fclose(in);
   fclose(out);
   return 0;
}
1
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
12.07.2011, 23:42  [ТС] #10
Цитата Сообщение от kazak Посмотреть сообщение
Или не может найти исходный?
Попробуй такой вариант и следи за сообщениями:
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   const char* in_file = "file.txt";
   const char* out_file = "file2.txt";
 
   int ch;
   FILE *in = NULL, *out = NULL;
 
   in = fopen( in_file,"rb");
   if (!in)
   {
      printf("Can't open input file\n");
      system("pause");
      return 1;
   }
   out = fopen( out_file, "wb");
   if (!out)
   {
      printf("Can't open output file\n");
      system("pause");
      return 2;
   }
   while ((ch = fgetc(in)) != EOF)
      fputc(ch, out);
   fclose(in);
   fclose(out);
   return 0;
}
даже если есть и исходный файл с именем "file.txt", то выбивает "Can't open input file"
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
12.07.2011, 23:44 #11
Напрашивается вполне логичный вывод, что исходный файл находится не там, где его ищет программа.
0
MegaByte
9 / 6 / 1
Регистрация: 27.06.2011
Сообщений: 110
12.07.2011, 23:45 #12
TambowsWolf, а файл находится в папке с программой?
0
TambowsWolf
0 / 0 / 0
Регистрация: 09.07.2011
Сообщений: 19
13.07.2011, 00:00  [ТС] #13
да!!!
0
MegaByte
9 / 6 / 1
Регистрация: 27.06.2011
Сообщений: 110
13.07.2011, 00:06 #14
все работает по преведенному выше коду
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
#include <stdio.h>
#include <stdlib.h>
 int main ( )
{
   const char* in_file = "file.txt";
   const char* out_file = "file2.txt";
 
   char *text;
   unsigned size;
   FILE *in, *out;
   in = fopen( in_file,"rb");
   if ( !in) return 0;
   fseek( in, 0, SEEK_END);
   size = ftell( in);
   rewind ( in);
   text = (char*) malloc( size);
   fread ( text, sizeof(char), size, in);
   fclose( in);
 
   out = fopen( out_file, "wb");
   if ( !out) return 0;
   fwrite ( text, sizeof(char), size, out);
   fclose( out);
   free( text);
 
   return 0;
}
создал проект скомпилил сохранил все, создал файл в той же папке с проектом file.txt опять скомпилил запустил все работает норм
0
13.07.2011, 00:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2011, 00:06
Привет! Вот еще темы с ответами:

Файл: Открыть файл в режиме «а+», внести изменения, характеризующие этот режим. - C++
Открыть файл для записи и записать в него произвольную информацию. Закрыть файл. Открыть его же в режиме «а+», внести изменения,...

Заполнить файл целыми случайными числами, скопировать чётные в другой файл - C++
Заполнить в файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g те...

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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