C++ getline直接连接到数组c++;,一行

C++ getline直接连接到数组c++;,一行,c++,getline,arrays,C++,Getline,Arrays,有没有一种方法可以直接将getline存储到c字符数组中 目前,我正在做这样的事情 istreams.getline(name, sizeof(name)); strcpy(names[i], name); 有没有一种方法可以只在一行中完成,比如用istreams.getline()替换这两行 istreams.getline(name, sizeof(name)); strcpy(names[i], name); 为了这个 istreams.getline( names[i], sizeo

有没有一种方法可以直接将
getline
存储到
c字符数组中

目前,我正在做这样的事情

istreams.getline(name, sizeof(name));
strcpy(names[i], name);

有没有一种方法可以只在一行中完成,比如用
istreams.getline()

替换这两行

istreams.getline(name, sizeof(name));
strcpy(names[i], name);
为了这个

istreams.getline( names[i], sizeof(names[i]));
我假设
names
是一个二维字符数组。否则,如果
names[i]
是指针,则必须使用其他值,而不是表达式
sizeof(names[i])

您还可以使用
std::vector
作为字符串的容器

比如说

while ( std::getline( istreams, name ) ) v.push_back( name );

对不起,这是C++代码<代码> istrAMS。GETLIN(名称[i],sisiof of Nosi[i]);<代码>@0x499602D2谢谢:)。例如,出于兴趣,当我返回名称[-1]时,我的程序一直打印出
LÁF
。你知道为什么吗?因为“文本”存储在
名称[0]
之前。您不能尝试访问数组边界之外的元素。因为
names[-1]
不是数组的一部分,您希望它做什么?它不会给你最后一个元素,C++不是Python谢谢,我设法让它工作到最后:只是出于兴趣,如果您访问
越界
,例如
名称[-1]
?@Rews-Prog,则返回像
LAF
这样的随机字符是正常的吗?@Rews-Prog使用名称[-1]?@Rews-Prog您尝试访问的内存不属于数组。因此,存储在内存中的任何内容都可以获得,甚至程序也可能崩溃。谢谢。我设置了
数组绑定检查
,这样如果我设置了
-1
,程序不会崩溃,但它会不断返回一些有趣的字符,所以我认为我做错了什么。因此,为了澄清,在C++中返回有趣的字符是正常的,如果<代码>界外?@ ReWePro,唯一的方法是编写不尝试这样做的代码。C/C++不检查数组边界。