LINUX.ORG.RU

c++ вопрос новичка: присвоить параметр терминала

 


0

1

Нужно присвоить параметр1 из терминала массиву String[]
Судя по ошибке, с одной стороны указатель, а с другой- массив, но как это поправить?
char String[10];

String[1] = argv[1];
error: invalid conversion from ‘char*’ to ‘char’

если c++, то:

#include <iostream>
#include <string>
int main (int argc, char* argv[])
{
  std::string s(argv[0]);
  std::cout << s << '\n';
  return 0;
}

anonymous
()

ну почитай уже книжки по с/с++

const char* param = argv[1];

x0r ★★★★★
()

Для начала лучше изучи си без плюсов по K&R. А потом принимайся за плюсы.

b0c0813f
()

char String[10] - массив из 10 элементов типа char, а ты пытаешься загнать туда char *. Тебе нужно схоронить argv[1]?

char * String[10];

String[1] = argv[1];

Extraterrestrial ★★★★★
()

argv это массив указателей.

argv[1] это указатель.

массивов в C не бывает(в том смысле, в котором они есть в других ЯП).

Если вы хотите присвоить один char, то пишите String[0] = argv[1][0]; (индексы отсчитываются с нуля, но нулевой параметр — имя этой программы. ./a.out наверное).

emulek
()
#include <iostream>
#include <cstring>

using namespace std;

int main(int argc, char **argv)
{
    char ololo[20];

    strncpy(ololo, argv[1], 20);

    cout << ololo << endl;

    return 0;
}
WRG ★★★★
()

Указатель vs cstring:

#include<iostream>
#include<cstring>
int main(int argv, char** argc){
   char *str;
   str=argc[1];
   char pname[256];
   strcpy(pname, argc[0]);
   std::cout<<pname<<" "<<str;
   return 0;
}

comp00 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.