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

Не работает strcmp + указатели непойми что опять выводят - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как программно незаметно создать zip/rar архив и отправить на хост? http://www.cyberforum.ru/cpp-beginners/thread649847.html
C++(лучше C++/CLI). Например: моя программа на компьютере с именем пользователя "User01". Она берет файли из нужных мне папок и пакует в архив с именем "User01-10-09-2012.rar/.zip" и шлется на какой-нибудь хост или мыло
C++ не работают все коды при компилировании любого кода в консоли появляется сообщение""адрес файла" не является внутренней или внешней программой или пакетным кодом. для продолжения нажмите любую кнопку... http://www.cyberforum.ru/cpp-beginners/thread649832.html
Как реализовать небуферизированный ввод в программе? C++
Необходим ввод по одному символу (т.е. как в getchar()), но без необходимости ввода специального символа для завершения. Т.е. что-то подобное тому, что есть в играх (мозг развалился от обилия междометий и вводных слов). Подскажите, чем можете)
C++/CLI Как получить путь к AppData C++/CLI
Клакаю на VC2010, в среде C++/CLI. Мне нужна функция, возвращающая путь к раб. столу, аппдата и т.д. Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); не робит "%APPDATA%" тож самое
C++ Freetype + кирилица http://www.cyberforum.ru/cpp-beginners/thread649800.html
при использовании фритайпа не выводится кирилица(точнее выводится, только в виде квадратика). Задаю номер буквы в шрифте, но не помогает. Англ буквы выводит на ура, только как-то с дырками среди слова. Использую в связке с OpenGL.
C++ Программа, вычисляющая среднее арифметическое введённой с клавиатуры последовательности чисел Написати програму, яка обчислює середнє арифметичне введеної з клавіатури послідовності чисел. Після вводу останнього числа програма повинна вивести мінімальне та максимальне число послідовності. Кількість чисел послідовності повинно задавати під час роботи програми. Толька с объяснением Написать программу, которая вычисляет среднее арифметическое введённой с клавиатуры последовательности... подробнее

Показать сообщение отдельно
AnreyKazakov
Заблокирован
11.09.2012, 00:01     Не работает strcmp + указатели непойми что опять выводят
Странно все это в одном примере работает strcmp в другом (здесь) не работает. Не могу понять почему, пока разбирался решил проверить на какой адрес указатель показывает, а он почему-то не меняет свое значение. Очень странно....
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
#include <iostream>
#include <cstring>
int main(){
    const char* line1="Hello";
    const char* line2="World";
    std::cout<<&line1<<" "<<&line2<<std::endl;
    while(*line1!='\0'){
        std::cout<<*line1<<std::endl;
        std::cout<<&line1<<std::endl;
        ++line1;/*так как идет приращение я думал, что адрес памяти
в строчке сверху будет меняться, а он какой-то константный....*/
        }
        std::cout<<" ";
    while(*line2!='\0'){
        std::cout<<*line2;
        ++line2;
        }   
        std::cout<<std::endl;
        std::cout<<&line1<<" "<<&line2<<std::endl;
        int i=strcmp(line1,line2);/*независимо от значений массивов line1
line 2 значение i равно 0 , что вообще не вписывается в мое понимание этого мира....как так?*/
        std::cout<<i<<std::endl;
    if(strcmp(line1,line2)==0){std::cout<<"TRUE";}else{std::cout<<"FALSE";}
    std::cout<<std::endl;
    return 0;
    }
непонятно в общем чет совсем =(

Добавлено через 36 минут
Очень все это странно, когда второй while убираешь, то все ок...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
int main(){
    const char* line1="Hello";
    const char* line2="World";
    while(*line1!='\0'){
        std::cout<<*line1;
        ++line1;
        }
        std::cout<<" ";
    /*while(*line2!='\0'){
        std::cout<<*line2;
        ++line2;
        }   */
        std::cout<<std::endl;
        int i=strcmp(line1,line2);
        std::cout<<i<<std::endl;
    if(strcmp(line1,line2)==0){std::cout<<"TRUE";}else{std::cout<<"FALSE";}
    std::cout<<std::endl;
    return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru