c++怎样读取多行数据时遇到空回车停止输入?

c++怎样读取多行数据时遇到空回车停止输入?,第1张

LZ你能表达清楚你想要的是什么样的 输入 以及 要完成怎样的 *** 作吗?
看你的提问有点不明所以
看你这样定义了3个对象:char a[100],b[100],c;
这能存放两个字符串,一个字符,而你要多行输入,这么样的 *** 作,还有空行、回车,你想要怎样的分割效果,感觉你自己都没搞清楚,能表达清楚点吗??

你测试一下回车键的ASCII码不就知道了嘛。
#include<iostream>
using namespace std;
void main()
{char ch;
scanf("%d",&ch); //输入时按一下回车。
printf("%d",ch); //输出的就是回车键的ASCII码。
}
在你的程序里判断输入的字符的ASCII码是不是回车就行了。
我测试出来是13呵呵。
用cin输入的话不会接收一个回车为字符呵呵。

#include <iostream>
using namespace std;
int main()
{ int a[],i=0,n=0;
a[0]=0;
while(a[i]!='\r')
{ cin>>a[i];i++;n++;
}
cout<<"你输入的字符是:"<<endl;
for(i=1;i<=n;i++)
{cout<<a[i];}
return 0;
}

#include<stdioh>
int main() {
    int arr[5],i;
    for(i=0;i<5;i++) scanf("%d",&arr[i]);
    for(i=0;i<5;i++) printf("%d\n",arr[i]);
}

你说的一串数字是一个还是多个,如果是多个,上面的代码就是,直接在一行中输入多个,数字以空格分开。如果只是要一个数字,那就直接是比如

int i=0;
scanf("%d",&i);

如果要实现的话, 不是不可能, 只是有点麻烦 因为cin这样输入的流类, 函数都是以回车结束输入, 你如果要它不显示回车, 我现在能想到的两种方法:
用C语言函数:getch, 把读入的字符转成串然后再转成数字这样可以读入数字, 而且不换行但 *** 作非常麻烦 如果说用getch, 你首先是要让用户输入, 输入的数字是几位的, 然后用for实现循环输入这对你不麻烦, 对 *** 作者是麻烦的
用C++的类:用cin输入一个数字字符串, 保存到string类中, 然后再把它转换成数字, 然后用system("cls")清屏 然后再把string中的所有数据输出, 然后不再输出回车, 这样也能做到不换行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10536789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存