|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我想问问这个我的这个代码,写了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[10][10];
- 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[i][j] = str;
- j++;
- }
- i++;
- // strArray.push_back(lineArray);
- }
- for (int i = 0; i < 10; i++)
- {
- for (int j = 0; j < 10; j++)
- cout << array[i][j] <<",";
- cout << endl;
- }
- getchar();
- return 0;
- }
复制代码
我想做的是比如这样
- if (array[i][j]='0'){
- …………
- }
复制代码
或者是
- if (array[i][j]=NULL){
- …………
- }
复制代码
这样要怎么办呢?可以改用char数组做getline的文件读取吗?我应该怎样修改代码呢?
1. if (array[i][j]='0' ; 这个不能直接比较的原因是,前面是一个 string,在C++是一个类,'=='符号是这个类中的符号重载,相当于string.equal()这样的调用,而==符号后面应该跟一个string , 相同的结构才可比较,你可以定义一个string a = "0"; 然后 == a 就行。
2. 在C++中有使用文件流读取文件的方式,不需要再使用getline这样的C库函数,你可以去查一下就清楚了。
|
|