cin的问题

happydog0506 2002-09-19 01:57:32
我用cin.getline(buf,256)接收命令,但如果输入超过255个子符,下回再用cin的时候,它不让我输入,直接就是得到一个空字符串,怎么解决呀?
...全文
15 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
using namespace std;

int main()
{
char str[5];
cin.getline(str,5);
cout << str << endl;

int i(0);
cin >> i; //如果第一次输入多于4个字符,到这就返回了,
//我用的是visual studio .net。
cout << i << endl;
return 0;
}
sarage 2002-09-21
  • 打赏
  • 举报
回复
可以这样理解,你输入的值并未直接赋给buf,而是存在内建的缓冲区内。你第一次不能取完,第二次还是在内建缓冲区内取,自然不用你输入了。你可以用 jyc_nj(老蔣) 的方法,用物理设备和内建的缓冲区同步一下再取,就可以了。
还有,楼主该结贴了吧,这贴都排第十页了!!!
jyc_nj 2002-09-19
  • 打赏
  • 举报
回复
cin.sync();
cjxiaoh 2002-09-19
  • 打赏
  • 举报
回复
定义buf为256就只能容纳255个字符,我想你大一点定义应该可以吧。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧