簡體   English   中英

輸出字符串時缺少第一個字符

[英]Missing first character when output string

當我嘗試輸入名稱到數組時,它的輸出缺少這樣的第一個字符: john to ohn 我用了cin.ignore(); cin.getline(name,30); 但是當我刪除cin.ignore(); ,因此在輸入期間會產生問題。 那是什么問題呢? 我使用了code::block IDE。

這是代碼:

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

class love {
    private:
    char name[30];
    public:
    void input_name();
    void output_name();
};

void love::input_name() {

    cout<<"Input Name :";
    cin.ignore();
    cin.getline(name,30);
}

void love::output_name() {
    cout<<name<<endl;
}

int main() {
    love obj[10];
    int n;
    int i,j,k;

    for (k=1;k>n;k++) {
    }

    cout<<"Input n student name : ";cin>>n;
    for(i=0;i<n;i++) {
        obj[i].input_name();
    }

    for(j=0;j<n;j++) {
        obj[j].output_name();
    }
    return 0;
}

您的“ love”類中沒有構造函數。 沒有愛,您將無法正常地構建愛。

如果調用不帶任何參數的ignore,它將忽略第一個字符。 http://www.cplusplus.com/reference/istream/istream/ignore/

istream& ignore (streamsize n = 1, int delim = EOF);

在您的情況下,我將避免使用getline和忽略。 將其更改為簡單的:

cin >> name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM