【发布时间】:2014-08-25 14:13:04
【问题描述】:
我已经声明了一个数组:names[1000];
和另一个数组data[1000];,用于临时存储数据
后来使用ifstream 从XML 文件中读取数据。
后来,我使用cin.getline(data, 300)将数据放入data[]数组中。
但是当我将data[] 数组分配给names[] 数组时,出现错误:
invalid operands of types char[1000] and char[1000] to binary operator>>
代码:
char data[1000];
char names[1000];
ifstream openFile("myfile.xml");
if(!openFile)
{
cout<<"File not found! please re-enter filename"<<endl;
}
while (openFile.getline (data, 300))
{
if (data[0] == '<' && data[1] == 'n') // to only check the <name> xml tag
{
cout<<data<<endl;
data >> names;
}
}
知道为什么我不能将数据数组分配给名称数组吗?
谢谢!
【问题讨论】:
-
你为什么使用 C 风格的字符串而不是
std::string? -
我必须使用数组来检查( [0] =='
-
当然,您可以使用适当的 C++ 字符串 (
std::string) 以及您可能想要使用旧式 C 字符串执行的任何其他操作。但不同之处在于,使用std::string会更容易、更安全/更健壮。 -
@taurette 您可以使用 C++ 字符串轻松做到这一点。
-
@taurette 您可以使用
std::string来做到这一点(即使用[]进行索引,只需先检查长度)。
标签: c++ arrays ifstream getline