C++ string数组和char数组问题
我想问问这个我的这个代码,写了string二维数组用于数据读取,但是后面想要用数组里的内容进行比较,比如里面的一个字符串是否和数组外的另一个字符串相等,但好像会提示string数组不能和char比对,这个我要怎么修改代码呢?#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
ifstream inFile("D://2.csv", ios::in);
string lineStr;
vector<vector<string>> strArray;
string array;
int i, j;
i = 0;
char* end;
if (inFile.fail())
cout << "读取文件失败" << endl;
while (getline(inFile, lineStr))
{
j = 0;
// 存成二维表结构
stringstream ss(lineStr);
string str;
vector<string> lineArray;
// 按照逗号分隔
while (getline(ss, str, ','))
{
array = str;
j++;
}
i++;
// strArray.push_back(lineArray);
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
cout << array <<",";
cout << endl;
}
getchar();
return 0;
}
我想做的是比如这样
if (array='0'){
…………
}
或者是
if (array=NULL){
…………
}
这样要怎么办呢?可以改用char数组做getline的文件读取吗?我应该怎样修改代码呢? 1. if (array='0'; 这个不能直接比较的原因是,前面是一个 string,在C++是一个类,'=='符号是这个类中的符号重载,相当于string.equal()这样的调用,而==符号后面应该跟一个string , 相同的结构才可比较,你可以定义一个string a = "0"; 然后 == a 就行。
2. 在C++中有使用文件流读取文件的方式,不需要再使用getline这样的C库函数,你可以去查一下就清楚了。
页:
[1]