鱼C论坛

 找回密码
 立即注册
查看: 833|回复: 1

[已解决]C++ string数组和char数组问题

[复制链接]
发表于 2020-5-13 09:33:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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的文件读取吗?我应该怎样修改代码呢?
最佳答案
2020-5-13 09:48:53
1. if (array[i][j]='0'  ; 这个不能直接比较的原因是,前面是一个 string,在C++是一个类,'=='符号是这个类中的符号重载,相当于string.equal()这样的调用,而==符号后面应该跟一个string , 相同的结构才可比较,你可以定义一个string a = "0"; 然后 == a 就行。
2. 在C++中有使用文件流读取文件的方式,不需要再使用getline这样的C库函数,你可以去查一下就清楚了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-13 09:48:53 | 显示全部楼层    本楼为最佳答案   
1. if (array[i][j]='0'  ; 这个不能直接比较的原因是,前面是一个 string,在C++是一个类,'=='符号是这个类中的符号重载,相当于string.equal()这样的调用,而==符号后面应该跟一个string , 相同的结构才可比较,你可以定义一个string a = "0"; 然后 == a 就行。
2. 在C++中有使用文件流读取文件的方式,不需要再使用getline这样的C库函数,你可以去查一下就清楚了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表