forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Символьный массив (http://forum.boolean.name/showthread.php?t=18748)

Devilox 28.11.2013 18:45

Символьный массив
 
В учебнике по C++ закончил одномерные массивы и подумал, что нужно написать простенькую свою программку, но не тут-то было. Программа должна представлять из себя текстовое управление консолью с каким-нибудь вычислением. Для ввода команд я создал символьный массив, записал в нём, например, команду "exit", однако оказалось, что туда записывается что-то другое, и ничего не работает. Что делать?

Код:

#include <iostream>
using namespace std;

int close = 0;

void main() {
        while (close != 1) {
                char string[20];
                cin.getline(string, 10);

                if (string == "exit") {
                        close = 1;
                }
        }
}


SBJoker 28.11.2013 18:55

Ответ: Символьный массив
 
очевидно что первый элемент массива string неравен строке "exit"
сравнивать строки нужно так: if (strcmp(string, "exit") == 0) {

pozitiffcat 28.11.2013 20:01

Ответ: Символьный массив
 
Код:

std::string command;
std::cin >> command;
if (command == "exit)
    return 0;

темболее сравнение сишных строк
Код:

if (strcmp(str, "eqstr") == 0) do_something();
а неработает потому что ты сравниваешь указатели а не строки. Поверхностно ты учебник читал


Часовой пояс GMT +4, время: 15:18.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot