Професионална програма
Loading...
+ Нов въпрос
Pavelgg avatar Pavelgg 1 Точки

int main с два аргумента : int main(int argc,char *argv[])

При компилиране на кода ми излиза винаги argc==1 и следователно още от първата проверка при IF и изпълнението прнезнам дали е правилно ,не разбирам дори как да добавям символи.

#include<iostream>

#include<fstream>

using namespace std;

int main(int argc,char *argv{}){

if(argc!=2){

cout<<"Usage: WRITE<filename>\n";

return 1;

}

ofstream out(argv[1]);

if(!out){

cout<<"Cannot open output file.\n";

return 1;

}

char str[80];

cout<<"Write string to disk, '$' to stop\n";

do{

cout<<": ";

cin>>str;

cout<<str<<endl;

}while(*str!='$');

out.close();

return 0;

}

 

Тагове:
0
C++ Programming
kolioi avatar kolioi 621 Точки

argc е броя на параметрите, а първия параметър е името на програмата - пълния път до изпълнимия файл. Функцията main() може да има и трети параметър, който е пойнтер към масив от environment variables.

int main(int argc, char** argv, char** envp)

 

0
Pavelgg avatar Pavelgg 1 Точки

Благодаря, а как да продължа да въвеждам параметри в даденият случай.

0
kolioi avatar kolioi 621 Точки

Доколкото виждам, името на програмата ти е write и трябва да я стартираш така: write filename. Ако я стартираш без параметри, по подразбиране argc е 1 и това е името на програмата. На теб ти трябва да укажеш и втори параметър - името на файла в който ще записваш текст. Само че така както си го написал, май няма да се получи, защото ще извежда всичко на екрана със cout.

0