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

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

Войти
Регистрация
Восстановить пароль
 
audiophile
9 / 9 / 0
Регистрация: 01.11.2009
Сообщений: 67
#1

Запуск программы с параметром - C++

12.12.2009, 18:57. Просмотров 579. Ответов 0
Метки нет (Все метки)

Люди, где собака зарыта? Не понимаю.

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
#include <cstdlib>
#include <stdio.h>
#include <errno.h>
#define BUF_SIZE 256
 
using namespace std;
 
int main (int argc, char *argv [])
{
   FILE *in_file, *out_file;
   char rec [BUF_SIZE];
   size_t bytes_in, bytes_out;
   if (argc != 3) {
      printf ("»nuzhno 2 parametra...\n");
      return 1;
   }
   in_file = fopen (argv [1], "rb");
   if (in_file == NULL) {
      perror (argv [1]);
      return 2;
   }
   out_file = fopen (argv [2], "wb");
   if (out_file == NULL) {
      perror (argv [2]);
      return 3;
   }
   while ((bytes_in = fread (rec, 1, BUF_SIZE, in_file)) > 0) {
      bytes_out = fwrite (rec, 1, bytes_in, out_file);
      if (bytes_out != bytes_in) {
         perror ("error");
         return 4;
      }
   }
   fclose (in_file);
   fclose (out_file);
   system("PAUSE");
   return EXIT_SUCCESS;
}
Запускаю с 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
29
30
31
32
#include <cstdlib>
#include <fstream>
#include <string>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    char * in = argv[1];
    char * out = argv[2];
    fstream infile;
    infile.open(in,ios::in);
    if ( ! infile ) {
       cout << "Oshibka: nevosmozhno otkrit' vhodnoy fail: " << in << endl;
       return -1;
    }
    fstream outfile;
    outfile.open(out);
    if ( ! outfile) {
       cout << "Oshibka: nevosmozhno otkrit' vihodnoy fail: " << out << endl;
    return -2;
    }
    char b;
    while ( infile >> b ) {
  //        out << b;
          cout << b;
    }
    cin >> b;
    system("PAUSE");
    return EXIT_SUCCESS;
}
(здесь просто тыкаю, пробую. не обращайте внимание на то, что не закрываю потоки)

Странно то, что даже если железно прописать как строку имена входного и выходного файла, то все равно будет ругаться! Не ругается только в том случае, когда я не передаю никаких параметров программе при запуске. Но в чем тут подвох?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2009, 18:57     Запуск программы с параметром
Посмотрите здесь:

Запуск программы ! C++
Запуск .exe из программы C++
C++ Запуск приложения с условием и параметром
C++ Запуск программы с параметром.
Запуск программы C++
C++ Запуск программы с запрошенным параметром и очистка временных файлов
Запуск G++ из программы C++
Запуск готовой программы C++
C++ Запуск программы с++ в браузере
C++ Запуск файла из С++ программы
Запуск внешней программы C++
C++ Запуск программы с параметрами

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

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

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