0

例如,如果我有以下陈述:

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

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

谢谢。

4

2 回答 2

1

是的,你是对的!

char f_name[11];

f_name11元素声明数组。

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

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

于 2011-01-20T10:54:30.420 回答
1

是的,没有。

char f_name[11];

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

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

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

除非您有特定的理由不这样做,否则请使用std::getlineC++ 读取一行。下面是一个例子。

#include <string>
std::string line;
std::getline(std::cin, line);
于 2011-01-20T11:12:13.113 回答