Форум программистов, компьютерный форум CyberForum.ru

Не сравниваются строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатели и динамические массивы. Использование указателей в качестве аргументов функций http://www.cyberforum.ru/cpp-beginners/thread780398.html
Из целочисленного массива Х(N) все нечетные элементы записать в массив Y(k). Удалить из каждого массива все простые двузначные числа. Найти, как изменилось количество простых чисел в каждом массиве после удаления. В программе написать функции: формирования массива Y, удаления элемента, определения количества простых чисел в массиве. Если можно, то напишите комментарии к строкам (что данная...
C++ Ошибка: нарушение прав доступа при чтении Помогите решить ошибку, если отдельно вызывать функции double det(macierz *A,macierz*B,int u) void kramer(macierz A,macierz *B) в мейне, то все прекрасно работает, как только задействую цыкл for выскакивает ошибка. Скрин прилагаеться #include <iostream> #include <math.h> #include <vector> http://www.cyberforum.ru/cpp-beginners/thread780380.html
C++ Конструктор и деструктор
На сколько сильно они нужны и можно ли обойтись без них? Что будет если их не описывать? Что такое утечки памяти? Память забивается только на время выполнения программы или дольше?
C++ Не работают функции inport и outport
Всем здравствуйте. Пишу код который должен будет выполняться под 16-битной DOS. Пишу его в Borland C++ 5.02. Подключаю "dos.h" в котором задефайнены функции inport и outport. При компиляции происходит ошибка "Error:Call to undefined function 'outport' " (тоже самое с inport). В хедере dos.h само собой нет описания этих функций, только определения, но какую тогда библиотеку требуется подключить?
C++ Используя только элементарные арифметические операции, определить сумму и произведение членов последовательности, которые кратны К http://www.cyberforum.ru/cpp-beginners/thread780324.html
Ув.пользователи, помогите решить задачку (С + + или Visual C + +). Данные целые положительные числа N, К, a1, ..., aN. Используя только элементарные арифметические операции (+, -, *, /), определить сумму и произведение членов последовательности a1, ..., aN, которые кратны К. Массивы не использовать. Заранее благодарен!
C++ Данное натуральное число N. Используя только элементарные арифметические операции (+, -, *, /) Ув.пользователи, помогите решить задачку (С + + или Visual C + +), очень нужно!( Данное натуральное число N. Используя только элементарные арифметические операции (+, -, *, /) определить количество единиц в двоичном представлении числа N. Заранее благодарен! подробнее

Показать сообщение отдельно
SteeLHeaD
1 / 1 / 0
Регистрация: 05.02.2013
Сообщений: 27
06.02.2013, 14:54     Не сравниваются строки
Сегодня мне понадобилось вызвать программу с аргументом команднйо строки
я посмотрел пример на
http://www.cplusplus.com/forum/beginner/35344/
и попробовал написать так же:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once
#include "stdafx.h"
#include "binder.h"
#include "logger.h"
#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;
 
 
int main(int argc, char *argv[])
{
    if (argc!=2)
    {
        printf ( "Please, select config name: 'Pod02.exe 1' or 'Pod02.exe 2'");
        return 0;
    }
    else
    {
        printf ("%s", argv[1] );
        if ( argv[1]=="1" )
        {
          Бла бла бла;
        }
        if ( argv[1]=="2" )
        {
          Бла бла бла 2;
        }
    }
    return 0;
}
Использую Visual Studio 2010, задал при отладке подставлять "1" в качестве аргумента командной строки.
В результате: строка printf ("%s", argv[1] ); честно выводит "1".
А условие if ( argv[1]=="1" ) не выполняется, то есть до кода Бла бла бла; программа не доходит.
В чем может быть дело?

( я подозреваю, что разница в инклудах - то есть у меня работает "какой то другой оператор сравнения строк", чем в примере. Но как мне тогда добиться того же эффекта с моими инклудами? они мне нужны для кода Бла бла бла; )
Спасибо заранее.

Добавлено через 9 минут
Дополнение.
Интересно, что при помощи такого извращения
C
1
if ( boost::lexical_cast<std::string>( argv[1] )=="1")
я смог правильно сравнить строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru