【发布时间】:2011-01-29 21:46:29
【问题描述】:
我正在尝试获取一条由“&”分隔的值的连续行,以加载到多维数组中。这是我尝试做的方式 - 代码中的所有内容都检查出来,除了字符串“str”,它包含格式为“value1,value2,value3,etc...”的分隔值,只是将整个字符串加载到数组[0][0]。我知道有更好的方法可以做到这一点,但我想知道的是为什么 C++ 不会将“str”视为我输入了单独的值和硬编码的“数组”。
代码如下:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
string str, strTotal;
ifstream in;
in.open("Desktop/01_001.PAC");
getline(in,str);
while ( in ) {
strTotal += str;
getline(in,str);
}
string searchString( "&" );
string replaceString( ", " );
assert( searchString != replaceString );
string::size_type pos = 0;
while ( (pos = str.find(searchString, pos)) != string::npos ) {
str.replace( pos, searchString.size(), replaceString );
pos++;
}
string array[4][5] = {str};
cout << array[0][0];
return(0);
}
这是外部文件("Desktop/01_001.PAC"):
void&void&void&void&a&a1&a2&a3&b&b1&b2&b3&c&c1&c2&c3&d&d1&d2&d3
提前致谢!
【问题讨论】:
-
如果你只是在学习编程(听起来你就是这样),那么 C++ 确实是你可能开始使用的最糟糕的语言。
-
我主要使用 PHP、Javascript 等 Web 语言进行编程,昨天才开始使用 C++。我正在尝试将 PHP 的想法应用到 C++ 中,它一直是一个活生生的地狱,哈哈...