[英]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.