-2
私は、ファイルからテキストを読み込んで特定の単語を検索するプログラムを作成しようとしています。そこから処理します。私は配列の最初のスポットが占有されている関数の外の配列にアクセスしようとすると、私はしたいデータを格納するために配列を使用しています。もちろん、コードは不完全ですが、私はこれを引き起こしていることを知る必要がありますか?関数外の配列に値が保持されないのはなぜですか?
#include<iostream>
#include<string>
#include<fstream>
using std::cout; using std::cin; using std::endl; using std::string;
using std::ifstream; using std::getline;
string data, strL = "language", strC = "created", strT = "timestamp";
string lang[2], date[2];
int count = 0, l = 0, c = 0;
ifstream rawData("testsample.txt");
void search(int count, string data, string heading) {
int x, y;
if (data.find(heading) != string::npos) {
//cout << heading << endl;
if (heading == strL) {
x = 4; y = 2;
lang[count] = data.substr(data.find(strL) + strL.length() + x, y);
//cout << lang[count] << endl;
}
if (heading == strC) {
x = 4; y = 29;
date[count] = data.substr(data.find(strC) + strC.length() + x, y);
}
}
count++;
}
int main() {
while (getline(rawData, data)) {
search(l, data, strL);
search(c, data, strC);
//count++;
}cout << lang[0] << " " << lang[1] << endl;
cout << date[1];
return 0;
}
示されたコードは、解析できない混乱です。グローバル変数。無作為に消える、奇妙な、非論理的なインデント。マジック定数。それが何をしようとしているにしても、それは正しいことができないし、全体を廃棄するのに手間がかからず、最初から始める方法はありません。 –