std :: cin.getline(f_name,10)

时间:2011-01-20 10:47:12

标签: c++ std getline cin

如果我有以下陈述:

char f_name[11];
std::cin.getline(f_name,10);

thia意味着: *声明一个11个字符宽的字符串? *读取输入的行并将其作为“f_name”的值传递?

感谢。

2 个答案:

答案 0 :(得分:1)

是的,你是对的!

char f_name[11];

使用f_name元素声明数组11

std::cin.getline(f_name,10);

提示输入值,然后将其存储在f_name[11]

答案 1 :(得分:1)

是的,没有。

char f_name[11];

声明一个包含11个元素的char数组。它不是一个真正的字符串 - 你可以认为它是一个“C字符串”,如果它最后有一个NUL('\0')(它没有)。

std::cin.getline(f_name, 10);

可能或可能不会读取整个输入的行,因为它最多只能读取9个字符。您需要使缓冲区大于cin.getline的值。

除非您有特殊原因,否则请使用std::getline读取C ++中的一行。以下是一个例子。

#include <string>
std::string line;
std::getline(std::cin, line);