먼저 C++ 전문가가 아니며 배우는 중이므로 어떤 통찰력이라도 대단히 감사하겠습니다. 이 문제는 처음에는 간단한 문제로 보였지만 몇 달 후에도 여전히 실용적인 해결책을 찾지 못했습니다. 나는 그것이 단지 간과되고 있다는 간단한 대답을 기대한다.C++ 파일에서 텍스트 읽기 및 문자열을 int 배열로 파싱
다음은 비슷한 스레드를 다른 사이트에서 읽음으로써 작성한 코드입니다. 기본적으로 GF256 곱셈 배열 (각 256 256 행)가 들어있는 텍스트 파일에서 읽으려고합니다. 줄 단위로 읽는 것은 각 행의 문자열로 필요한 내용을 정확하게 볼 수있는 행 (cout < < multi_ < < endl;)에 의해 입증됩니다. 이 시점에서 나는 문제가있다. 이 문자열을 int 배열로 파싱하는 방법을 찾지 못하는 것 같습니다. 이 코드를 여러 번 반복하면서이 작업을 여러 번 시도했지만 아무도 나를 위해 일하지 못했습니다. 나는 이것을위한 아주 간단한 해결책이 있다고 가정한다. 다시 한번,이 문제에 대한 어떤 통찰력이라면 크게 감사 할 것입니다.
int kGF = 0;
int multiGFtemp[256 * 256];
int n;
int main()
{
string multi_;
ifstream fileGF("GF256MultiTable.txt");
if(fileGF.is_open())
{
while(getline(fileGF,multi_))
{
cout << multi_ << endl;
cin.get();
}
fileGF.close();
}
else
{
cout << "File is not open" << endl;
}
cin.get();
cout << multi_;
stringstream stream2(multi_);
while(stream2)
{
stream2 >> n;
cout << n << endl;
multiGFtemp[kGF] = n;
kGF++;
}
for(int k = 0; k < 256 * 256; k++)
{
/*
cout << multiGFtemp[k] << " ";
*/
}
cin.get();
return 0;
}
처리해야 할 기회가있는 유일한 줄은 마지막 줄입니다.'getline '을 처리해야 할 때 텍스트를 읽을 때입니다. 행 (문자열)과 배열을 인자로 취하고 첫 번째 인자의 내용으로 후자를 채우는 함수를 작성하는 것을 고려하십시오. 텍스트 행에서 숫자를 읽는 문제는 "CSV C++"로 검색하고 다른 사람들의 방법을 볼 수 있습니다 해냈다. – riodoro1
파일 포맷 방법에 대한 예를 보여줄 수 있습니까? – NathanOliver
.txt 파일은 다음과 같이 형식이 지정됩니다. 새로운 라인입니다. 0 0 0 0 ...; 1 1 1 1 1 ...; 1 2 3 5 ...; 각 숫자 사이에 정의되지 않은 양의 공백이 있지만 각 256 개의 번호가 매겨진 행 끝에 명확한 새 행이 있습니다. – pfe