Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;字符串被打印为十六进制,当这不是目的时_C++_Arrays_Hex_Cout - Fatal编程技术网

C++ C++;字符串被打印为十六进制,当这不是目的时

C++ C++;字符串被打印为十六进制,当这不是目的时,c++,arrays,hex,cout,C++,Arrays,Hex,Cout,我正在为学校做一个项目,我们应该在那里建立一个联系簿。 我偶然发现了一个问题,我的程序将字符串打印为六进制符号,我以前从未遇到过这个问题,也不知道如何解决它 字符串从阵列打印到终端上 #include <iostream> #include <string> using namespace std; const int unikapersoner = 75; string I_namn[unikapersoner]; string T_Nummer[unikaperso

我正在为学校做一个项目,我们应该在那里建立一个联系簿。 我偶然发现了一个问题,我的程序将字符串打印为六进制符号,我以前从未遇到过这个问题,也不知道如何解决它

字符串从阵列打印到终端上

#include <iostream>
#include <string>
using namespace std;

const int unikapersoner = 75;
string I_namn[unikapersoner];
string T_Nummer[unikapersoner];

void addcontact() {
    char Fullname[50];
    char TelefonNummer[50];
    cin.ignore();
    cout << "Ange det fullständiga namnet du vill spara till kontaktboken.. "
         << endl;
    cin.getline(Fullname, 50);
    cout << "Ange telefonnummeret till personen som du vill spara.. " << endl;
    cin.getline(TelefonNummer, 50);

    for(int i = 0; i < unikapersoner; i++) {
        if(T_Nummer[i] == "\0") { // Letar efter tom index.
            I_namn[i] = Fullname;
            T_Nummer[i] = TelefonNummer;
            break;
        }
    }
}

void listALLcontacts() {
    cout << "/Kontakter/." << endl;
    cout << "=================================" << endl;
    int nr = 0;
    for(int i = 0; i < unikapersoner; i++) {
        if(T_Nummer[i] != "\0") {
            nr++;
            cout << "#" << nr << " " << I_namn << " " << T_Nummer << endl;
            cout << "- - - - - - - - -" << endl;
        }
    }
    cout << "=================================" << endl;
    if(nr == 0) {
        cout << "Du har inga kontakter i din telefonbok..";
    }
}
int main() {
    int terminalval;
    system("CLS");

    do {
        cout << "Din telefonbok!" << endl;
        cout << "1 : Ange ny Kontakt" << endl;
        cout << "2 : Se nuvarande Kontakter" << endl;
        cout << "3 : Uppdatera kontakt" << endl;
        cout << "4 : Radera kontakt" << endl;
        cout << "5 : Avsluta" << endl;
        cout << "Ange ditt val.." << endl;
        cin >> terminalval;

        switch(terminalval) {
        case 1:
            addcontact();

            break;
        case 2:
            listALLcontacts();
            break;
        case 3:
            updatecontacts();
            break;
        case 4:
            deletecontact();
            break;
        default:
            cout << "Är ett felaktigt kommando! " << endl;
        }
    } while(terminalval != 5);
}
#包括
#包括
使用名称空间std;
单位常数=75;
字符串I_n[unikapersoner];
字符串T_numer[unikapersoner];
void addcontact(){
字符全名[50];
char TelefonNummer[50];
cin.ignore();

cout您正在打印功能
listalcontacts
中数组
I\u namn
T\u numer
的地址,如下所示:

cout << "#" << nr << " " << I_namn << " " << T_Nummer << endl;

与您询问的问题无关的注释:

你可以这样做一些比较

if(T_Nummer[i] == "\0")
这是不需要的。
“\0”
实际上是2
char
s长,由您放在那里的
\0
组成,然后是一个终止的
\0
,所以就这样做吧

if(T_Nummer[i] == "")
或者更好:

if(T_Nummer[i].empty())

您正在功能
listalcontacts
中打印数组
I\u namn
T\u numer
的地址,如下所示:

cout << "#" << nr << " " << I_namn << " " << T_Nummer << endl;

与您询问的问题无关的注释:

你可以这样做一些比较

if(T_Nummer[i] == "\0")
这是不需要的。
“\0”
实际上是2
char
s长,由您放在那里的
\0
组成,然后是一个终止的
\0
,所以就这样做吧

if(T_Nummer[i] == "")
或者更好:

if(T_Nummer[i].empty())

我添加了缺少的标题,但代码仍然不是@Ron指出的MRE。也添加缺少的函数-或者删除对它们的调用(如果不需要它们来显示问题)。您使用什么输入来获得结果?我添加了缺少的标题,但代码仍然不是@Ron指出的MRE。也添加缺少的函数-或者如果他们不需要显示问题,请删除对他们的呼叫。您使用了哪些输入来获得结果?谢谢您的帮助,还有额外的提示!@Gruffis you's welcome…och lycka till!:-)谢谢您的帮助,还有额外的提示!@Gruffis you's welcome…och lycka till!:-)