如何解决C++中while(cin.get!='\n')吐字符的问题
上代码,上图#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>usingna...
上代码,上图
# include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char a[3][3];
char b[3][3];
int i1=0,i2=0,i=0;
char ch;
while(cin.get()!='\n')
cin>>a[i1++];
while(ch=cin.get()!='\n')
cin>>b[i2++];
for(i=0;i<3;i++)
cout<<a[i]<<" ";
cout<<endl;
for(i=0;i<3;i++)
cout<<b[i]<<" ";
return 0;
}
结果如图上,可以知道,cin,get()总是会吞掉一个字符,怎么样才能解决这个问题?
我需要的就是,在两个二维字符数组输入数据,当输入的数据的两个字符串有“ ”(空格)的时候,后一个字符串就会调到二维数组的下一维进行输入,当判断到有回车换行的时候,说明此时要换到下一个二维数组的数据输入了,但是总被吞掉一个字符,怎么解决? 展开
# include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char a[3][3];
char b[3][3];
int i1=0,i2=0,i=0;
char ch;
while(cin.get()!='\n')
cin>>a[i1++];
while(ch=cin.get()!='\n')
cin>>b[i2++];
for(i=0;i<3;i++)
cout<<a[i]<<" ";
cout<<endl;
for(i=0;i<3;i++)
cout<<b[i]<<" ";
return 0;
}
结果如图上,可以知道,cin,get()总是会吞掉一个字符,怎么样才能解决这个问题?
我需要的就是,在两个二维字符数组输入数据,当输入的数据的两个字符串有“ ”(空格)的时候,后一个字符串就会调到二维数组的下一维进行输入,当判断到有回车换行的时候,说明此时要换到下一个二维数组的数据输入了,但是总被吞掉一个字符,怎么解决? 展开
2个回答
展开全部
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
char a[3];
char b[3];
int i1=0,i2=0,i;
char ch;
while((ch=cin.get())!=' ')
a[i1++]=ch;
while((ch=cin.get())!='\n')
b[i2++]=ch;
for(i=0;i<3;i++)
cout<<a[i]<<" ";
cout<<endl;
for(i=0;i<3;i++)
cout<<b[i]<<" ";
}
我改了一下你的代码,不知道你是不是这个意思
#include <iostream>
using namespace std;
int main(){
char a[3];
char b[3];
int i1=0,i2=0,i;
char ch;
while((ch=cin.get())!=' ')
a[i1++]=ch;
while((ch=cin.get())!='\n')
b[i2++]=ch;
for(i=0;i<3;i++)
cout<<a[i]<<" ";
cout<<endl;
for(i=0;i<3;i++)
cout<<b[i]<<" ";
}
我改了一下你的代码,不知道你是不是这个意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询