Как удалить конечные и начальные пробелы для пользовательского ввода в командном файле?

Потому что вы передаете копию указателя. Чтобы изменить указатель, вам нужно что-то вроде этого:

void foo(int **ptr) //pointer to pointer
{
    *ptr = new int[10]; //just for example, use RAII in a real world
}

или

void bar(int *& ptr) //reference to pointer (a bit confusing look)
{
    ptr = new int[10];
}
30
задан Peter Mortensen 6 May 2011 в 16:53
поделиться

2 ответа

Вам необходимо включить отложенное расширение. Попробуйте следующее:

@echo off
setlocal enabledelayedexpansion
:blah
set /p input=:
echo."%input%"
for /f "tokens=* delims= " %%a in ("%input%") do set input=%%a
for /l %%a in (1,1,100) do if "!input:~-1!"==" " set input=!input:~0,-1!
echo."%input%"
pause
goto blah
25
ответ дан 27 November 2019 в 20:25
поделиться
  @echo off & setlocal enableextensions
  rem enabledelayedexpansion
  set S=  This  is  a  test
  echo %S%.
  for /f "tokens=* delims= " %%a in ('echo %S%') do set S=%%a
  echo %S%.
  endlocal & goto :EOF

от http://www.netikka.net/tsneti/info/tscmd079.htm

для удаления ведущих пробелов.

0
ответ дан 27 November 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: