c++ - 在控制台中获取输入的大小

标签 c++

如何获取控制台输入字符串的大小或缓冲区中有效字符的大小?

char buffer[100];
cin >> buffer;

我希望将“\0”放在输入结束的位置。

最佳答案

首选使用 std::string,而不是 char*char[]。这让事情变得简单! char buffer[100] 的问题在于,如果输入字符串的大小超过 100,那么您的 cin >> buffer 将调用未定义的行为,因为它会尝试写入 beyond 数组。如果使用 std::string,这个问题可以很容易地避免。

std::string input;
cin >> input; //this can read string of any unknown size!
cout << "length of input string : " << input.size()<< endl;

您还可以使用 input.length() 代替 input.size()。它们返回相同的值。

在线演示:http://www.ideone.com/Wdo31

关于c++ - 在控制台中获取输入的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895987/

相关文章:

c++ - 为什么我无法在 C++ 中捕获递归 lambda 函数?

c++ - C++ 中的 boost::bind 和 << 运算符

c++ - 将参数传递给自动转换为指针的函数

c++ - 在循环中使用 calloc 和 free 时校验和不正确

c++ - posix 管道作为工作队列

c++ - 使用 openssl 库的编译问题

c++ - 使用 typedef 的模板特化

c++ - 为什么 deque::erase() 调用赋值运算符?

c++ - 快速排序不适用于大型数组

c++ - OpenCV + GigE 视觉相机 +c++