Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_6_метод_указания.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
334.34 Кб
Скачать

Аргументы командной строки

using namespace std;

int main(int argc, char* argv[] )

{

cout << "\nargc = " << argc << endl; //количество аргументов

for(int j=0; j<argc; j++) //вывод аргументов

cout << "Argument " << j << " = " << argv[j] << endl;

return 0;

}

////////////////////////////////////////////////////////////////

Задание параметров программы в командной строке

Задание аргумента при выполнении программы в среде MS Visual C++ 2005 осуществляется следующим образом:

  • в окне Solution Explorer выделить проект (щелкнуть на названии проекта)

  • в меню Project выбрать команду Properties

  • в открывшемся окне Property Pages выбрать команду Debugging 

  • в появившейся таблице в поле Command Arguments ввести строку аргументов для программы.

//в программе в качестве аргумента функции main() задается путь // к текстовому файлу

//в командной строке задано proba.txt ( для файла из текущей папки)

#include <iostream>

#include <conio.h>

using namespace std;

int main(int argc,char *argv[])

{

if (!(argc>=2))

{

cout<<"arguments? \n";

_getch();

return 1;

}

ifstream fp(argv[1]);

cout<<"+++++++++++++++++++++++++++++++++++++++++++++\n";

cout<<argv[1]<<endl;

cout<<"+++++++++++++++++++++++++++++++++++++++++++++\n";

if (!fp)

{

cout<<"error of open file";

_getch();

return 1;

}

......

}

////////////////////////////////////////////////////////////////

Возможные ошибки при записи в файл или чтении из него

#include <fstream>

#include <iostream>

using namespace std;

#include <process.h> //for exit()

const int MAX = 1000;

int buff[MAX];

int main()

{

for(int j=0; j<MAX; j++) //заполнение буфера данных

buff[j] = j;

ofstream os; //создание потока вывода

//открытие потока вывода

os.open("edata.dat", ios::trunc | ios::binary);

if(!os)

{ cerr << "Could not open output file\n";

_getch();

exit(1);

}

cout << "Writing...\n"; //запись буфера в файл

os.write( reinterpret_cast<char*>(buff), MAX*sizeof(int) );

if(!os)

{ cerr << "Could not write to file\n";

_getch();

exit(1);

}

os.close(); //закрытие потока

for(int j=0; j<MAX; j++) //очистка буфера

buff[j] = 0;

ifstream is; //создание потока ввода

is.open("edata.dat", ios::binary); //открытие потока ввода

if(!is)

{ cerr << "Could not open input file\n";

_getch();

exit(1);

}

cout << "Reading...\n"; //чтение из файла в буфер

is.read( reinterpret_cast<char*>(buff), MAX*sizeof(int) );

if(!is)

{ cerr << "Could not read from file\n";

_getch();

exit(1);

}

for(int j=0; j<MAX; j++) //check data

if( buff[j] != j )

{ cerr << "\nData is incorrect\n";

_getch();

exit(1);

}

cout << "Data is correct\n";

_getch();

return 0;

}

////////////////////////////////////////////////////////////////

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]