C++ 判断缓存区末尾

qq_29338967 2019-05-09 12:52:37
C++for循环cin一个char数组 如果缓存区字符小于数组的length 该怎么判断来退出这个循环
...全文
62 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiht594 2019-05-09
  • 打赏
  • 举报
回复

while (true)
{
cout << "input:";
string strIn;
std::getline(cin, strIn);
if (strIn.size() > 20)
{
cout << "size > 20" << endl;
}
else
{
cout << strIn << endl;
break;
}
}
qq_29338967 2019-05-09
  • 打赏
  • 举报
回复
引用 5 楼 636f6c696e 的回复:
自己加while循环啊,cin不管你输入是啥都只执行一次
引用 4 楼 qq_29338967 的回复:
引用 3 楼 636f6c696e 的回复:
不需要for循环:
#include<iostream>
using namespace std;

#define MAX_INPUT_LEN   10

int main()
{
    char input[MAX_INPUT_LEN];
    cin.getline(input, MAX_INPUT_LEN);
    cout<<input<<endl;
    return 0;
}
[quote=引用 2 楼 qq_29338967 的回复:] [quote=引用 1 楼 OrdinaryCoder 的回复:]那你应该用缓冲区的length来做for循环的次数
请问具体怎么实现呢 我想让用户输入一个字符串 但是不知道这个串能有多长
我想让用户重复输入小于20位的字符串 cin.getline 一旦用户输入超过20 程序就结束了 请问该怎么改进代码呢[/quote][/quote]最外层While(!cin.eof())吗
636f6c696e 2019-05-09
  • 打赏
  • 举报
回复
自己加while循环啊,cin不管你输入是啥都只执行一次
引用 4 楼 qq_29338967 的回复:
引用 3 楼 636f6c696e 的回复:
不需要for循环:
#include<iostream>
using namespace std;

#define MAX_INPUT_LEN   10

int main()
{
    char input[MAX_INPUT_LEN];
    cin.getline(input, MAX_INPUT_LEN);
    cout<<input<<endl;
    return 0;
}
引用 2 楼 qq_29338967 的回复:
[quote=引用 1 楼 OrdinaryCoder 的回复:]那你应该用缓冲区的length来做for循环的次数
请问具体怎么实现呢 我想让用户输入一个字符串 但是不知道这个串能有多长
我想让用户重复输入小于20位的字符串 cin.getline 一旦用户输入超过20 程序就结束了 请问该怎么改进代码呢[/quote]
qq_29338967 2019-05-09
  • 打赏
  • 举报
回复
引用 3 楼 636f6c696e 的回复:
不需要for循环:
#include<iostream>
using namespace std;

#define MAX_INPUT_LEN   10

int main()
{
    char input[MAX_INPUT_LEN];
    cin.getline(input, MAX_INPUT_LEN);
    cout<<input<<endl;
    return 0;
}
引用 2 楼 qq_29338967 的回复:
引用 1 楼 OrdinaryCoder 的回复:
那你应该用缓冲区的length来做for循环的次数
请问具体怎么实现呢 我想让用户输入一个字符串 但是不知道这个串能有多长
我想让用户重复输入小于20位的字符串 cin.getline 一旦用户输入超过20 程序就结束了 请问该怎么改进代码呢
636f6c696e 2019-05-09
  • 打赏
  • 举报
回复
不需要for循环:
#include<iostream>
using namespace std;

#define MAX_INPUT_LEN   10

int main()
{
    char input[MAX_INPUT_LEN];
    cin.getline(input, MAX_INPUT_LEN);
    cout<<input<<endl;
    return 0;
}
引用 2 楼 qq_29338967 的回复:
引用 1 楼 OrdinaryCoder 的回复:
那你应该用缓冲区的length来做for循环的次数
请问具体怎么实现呢 我想让用户输入一个字符串 但是不知道这个串能有多长
qq_29338967 2019-05-09
  • 打赏
  • 举报
回复
引用 1 楼 OrdinaryCoder 的回复:
那你应该用缓冲区的length来做for循环的次数
请问具体怎么实现呢 我想让用户输入一个字符串 但是不知道这个串能有多长
OrdinaryCoder 2019-05-09
  • 打赏
  • 举报
回复
那你应该用缓冲区的length来做for循环的次数

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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