Я создаю две программы, которые образуют игру, и будут общаться друг с другом, где один из них по сути является пользователем, но я начинаю с построением одного и набрав себя на эту первую программу.Как взять пользовательский ввод команды различного размера и поместить его в массив
Я хочу вводить команды типа «поворот d1d2d3d4d5d6» (где di - рулоны кости), «rerolled d1d2d3d4d5d6» и т. Д., Theres - набор команд. Я хочу, чтобы моя программа называлась игроком, чтобы принимать эти команды, и они будут с ней что-то делать.
Только для начала я пытаюсь взять ввод с помощью stdin и поместить его в массив, а затем проверить массив, чтобы увидеть, действительно ли его действительная команда. Однако я не могу правильно использовать fgetc и массив. То, что я делаю в настоящее время, - это просто взять ввод, поместить в массив и распечатать его.
Я действительно не хочу, чтобы это было размером 128, я хочу, чтобы он полностью настраивался, но я не знаю, как это сделать с помощью fgets. Цикл if, чтобы проверить, не является ли его NULL, если массив пуст, но это неправильно, не уверен, что там делать.
while(1){
int i = 1;
char* command[128];
fgets(command, 128, stdin);
for (i=0; i < 128; i++){
if (command[i] == NULL){
printf("%c\n", command[i]);
}
}
return 0;
}
Так конкретно моя главная цель прямо сейчас принять такие команды, как «устранен р» от пользователя и команды становится команда = [ «устранен», «р»]
Я думаю, что вы намеревались написать 'char command [128];', на первом месте. –
Во-вторых, он слишком широк, поскольку он читает сейчас, не говоря уже о непонятном. Можете ли вы добавить дополнительные сведения о _actually_, на что вы нацеливаетесь? –
Возможный дубликат [Как я могу прочитать строку ввода неизвестной длины?] (Http://stackoverflow.com/questions/16870485/how-can-i-read-an-input-string-of-unknown-length) – deepmax