我不想删除第一个字符。
#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
答案 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')