Как Вы обрабатываете строки в C++?

Как только вы перенаправите страницу A (начальную страницу) на страницу B (новую страницу), JavaScript на странице A прекратит работу, и страница B вступит во владение. Если вы хотите показать вычисленное значение в качестве предупреждения, предупреждение должно быть перед перенаправлением страницы. Измените порядок кода следующим образом:

function Calculate () {// Если строка ниже прокомментирована, мой код ниже работает, в противном случае нет.

var ps = require("python-shell")
var path = require("path")

var num1= document.getElementById("num1").value
var num2 = document.getElementById("num2").value

// Shows calculated result as an alert here. 

//redirect after alert
window.location = "resultpage.html";


// FURTHER CODE BELOW //

Еще одна вещь, которую стоит отметить, это то, что элементы num1 и num2 на странице A больше не будут отображаться на странице B. Если вы хотите выполнить вычисление на странице B, вам нужно будет отправить это данные как часть URL-адреса в качестве параметра, если вы хотите, чтобы он был доступен, а затем либо заполните поля на странице правильными значениями, либо измените свой javascript для чтения значений из параметров.

17
задан Chris Jester-Young 25 September 2008 в 13:52
поделиться

15 ответов

станд.:: строка или станд.:: wstring, в зависимости от Ваших потребностей. Почему?

  • Они стандартные
  • , Они портативны
  • , Они могут обработать I18N
  • , у Них есть гарантии исполнения (согласно стандарту)
  • Защищенный от переполнения буфера, и подобные нападения
  • легко преобразовываются в другие типы по мере необходимости
  • , являются приятно шаблонными, давая Вам, большое разнообразие опций при сокращении кода чрезмерно увеличивается в размерах и улучшении производительности.В самом деле. Компиляторы, которые не могут обработать шаблоны, давно в прошлом теперь.

массив C-стиля А символов просто напрашивается на неприятности. Необходимо будет все еще иметь дело с ними при случае (и это что станд.:: строка c_str () для), но, честно - одной из самых больших опасностей в C являются программисты, делающие Плохие Вещи с символом* и заканчивающие переполнение буфера. Просто не делайте этого.

массив wchar __ t является тем же самым, просто больше.

CString, BSTR и CComBSTR не являются стандартными и не портативными. Избегайте их, если абсолютно не вызвано. Оптимально, просто преобразуйте станд.:: строка/станд.:: wstring им при необходимости, которые не должны быть очень дорогими.

Примечание, что станд.:: строка является просто дочерним элементом станд.:: basic_string, но Вы - все еще более обеспеченный станд. использования:: представьте в виде строки, если у Вас нет действительно серьезного основания не к. Действительно Хороший. Позвольте компилятору заботиться об оптимизации в этой ситуации.

32
ответ дан 30 November 2019 в 10:05
поделиться

Если можно использовать MFC, используйте CString. Иначе используйте станд.:: строка. Плюс, станд.:: представьте работы в виде строки над любой платформой, которая поддерживает стандартный C++.

4
ответ дан 30 November 2019 в 10:05
поделиться

Вот статья, сравнивающая наиболее распространенные виды строк в C++ и как преобразовать между ними. Строки Распутывания в Visual C++

5
ответ дан 30 November 2019 в 10:05
поделиться

станд.:: представьте в виде строки, если я не должен называть API, который конкретно берет одного из других, что Вы перечислили.

6
ответ дан 30 November 2019 в 10:05
поделиться

Я использую std::string (или basic_string<TCHAR>) каждый раз, когда я могу. Это довольно универсально (точно так же, как CStringT), это безопасно с точки зрения типов (в отличие от этого printf), и это доступно на каждой платформе.

2
ответ дан 30 November 2019 в 10:05
поделиться

станд.:: строка !!

существует причина, почему они называют ее "Стандартом".

basic_string является деталью реализации и должен быть проигнорирован.

BSTR & CComBSTR только для interOp с COM, и только в настоящий момент interop.

8
ответ дан 30 November 2019 в 10:05
поделиться

станд.:: строка и станд.:: wstring, если я могу, и что-то еще, если я имею к.

Они не могут быть прекрасными, но они хорошо протестированы, хорошо поняты и очень универсальные. Они играют приятно с остальной частью стандартной библиотеки, которая является также огромной премией.

Также стоящий упоминания, stringstreams.

1
ответ дан 30 November 2019 в 10:05
поделиться

Unicode является будущим. Не используйте символ* и станд.:: строка.), я устал от ошибок локализации.

1
ответ дан 30 November 2019 в 10:05
поделиться

станд.:: строка лучше чем ничего, но это является раздражающим, который это пропускает, основная функциональность любят разделение, соединение и даже достойный вызов формата...

1
ответ дан 30 November 2019 в 10:05
поделиться

Мне нравится использовать TCHAR, который является определением для wchar или символа согласно настройкам проектов. Это определяется в tchar.h, где Вы можете найти все связанные определения для функций и вводите Вас потребность.

1
ответ дан 30 November 2019 в 10:05
поделиться

При использовании MFC используйте CString. Иначе я соглашаюсь с большинством других, станд.:: строка или станд.:: wstring полностью.

Microsoft, возможно, сделала миру огромное одолжение путем добавления станд.:: basic_string< TCHAR> перегрузки в их последнем обновлении MFC.

2
ответ дан 30 November 2019 в 10:05
поделиться

Массивы символов C-стиля имеют свое место, но если Вы используете их экстенсивно, Вы просите напрасно тратить время, отлаживая прочь ошибками. Нам адаптировали наш собственный строковый класс для использования в нашем (встроенная среда разработки).

Мы не используем станд.:: представьте в виде строки, потому что это не всегда доступно для нас.

2
ответ дан 30 November 2019 в 10:05
поделиться

Другой, станд.:: wstring.

станд.:: строка является технологией 20-го века. Используйте Unicode и продайте 6 миллиардам человек вместо 300 миллионов.

2
ответ дан 30 November 2019 в 10:05
поделиться

Я - QT dev, поэтому конечно, я склонен использовать QString, когда это возможно, :).

Это довольно хорошо: unicode совместимое, ориентированное на многопотоковое исполнение неявное совместное использование (иначе копия на записи), и это идет с API, разработанным для решения практических реальных проблем (разделение, соединение, замена (с и без regex), преобразование в числа...)

, Если я не могу использовать QString, затем станд.:: wstring. Если Вы застреваете с C, я рекомендую бойкий GString.

3
ответ дан 30 November 2019 в 10:05
поделиться

Когда у меня есть выбор (я обычно не делаю), я склонен использовать станд.:: строка с кодировкой UTF-8 (и справка библиотека UTF8 CPP. Не то, чтобы мне нравится станд.:: строка так очень, но по крайней мере это стандартно и портативно.

Unfortunatelly, почти во всех реальных проектах я продолжил работать, были внутренние строковые классы - большинство из них на самом деле лучше, чем станд.:: строка, но все еще...

3
ответ дан 30 November 2019 в 10:05
поделиться
Другие вопросы по тегам:

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