char数组的问题

时间:2014-09-14 19:33:22

标签: c++

我不想删除第一个字符。

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;

char name[10][80]={0};int i;
int main (){
for (i=0;i<10;i++){
    cin.ignore();
    cout<<"\nIngrese el nombre N "<<i+1<<": ";cin.getline(name[i],80);      
}
for (i=0;i<10;i++){
    if(name[i]== '\0'){
    }else{
        cout<<"\nEl nombre ingresado es: "<<name[i];
    }
}
getchar();
return 0;
}

由于某种原因,当我在屏幕上打印时,第一个字符被删除

示例:Leo Gutierrez

屏幕:eo Gutierrez

1 个答案:

答案 0 :(得分:0)

而不是     cin.ignore()

你可以试试这个:

while(iswspace(cin.peek())) cin.ignore();// eat white... 

意味着在输入之前跳过任何看不见的字符

但这不允许输入空字符串。

这将允许它:

while(iswspace(cin.peek()) && cin.peek()!=10)  cin.ignore();

表示跳过除回车键以外的任何看不见的字符。

名称[i]就像地址一样,它永远不会等于0.所以我想你应该检查一下:

if(name[i][0]== '\0')