我无法将字符串存储到数组中,然后我想将其用于比较

I am unable to store string into an array, which i then want to use for comparison

本文关键字:然后 比较 用于 数组 字符串 存储      更新时间:2023-10-16

我无法将字符串存储到数组中,当我输出b[c]时,没有出现任何内容,如何将其存储到数组?

int main(int argc, char *argv[])
{
    string b[80000];
    int c=0;
    string s;
    ifstream file(argv[1]);
    while(file >> s) {
        b[c]=s;
        c++;
        cout<<b[c];
    }
    system("pause");
    return 0;
}

您正在打印空字符串。只需在c++; 之前移动cout << b[c];

我建议使用std::vector,它将避免不必要的临时变量和神奇常数:

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
int main(int argc, const char* argv[])
{
    std::ifstream fin(argv[1]);
    std::vector<std::string> v
    {
        std::istream_iterator<std::string>(fin),
        std::istream_iterator<std::string>()
    };
    for(const auto& elem: v)
        std::cout << elem << std::endl;
    return 0;
}

当文件名未传递或文件不存在时,也不要忘记处理这些情况。

这可能适用于

while(file >> s) {
            b[c]=s;
            cout<<b[c];
            c++;
        }