我在C++和編程方面頗爲新穎,所以很抱歉在我的問題中重複。我有3行文本文件:從文件中讀取字符並寫入另一個文件
7
00000000000000000000000 * 0000
0 0 0 R 0
我需要做的是閱讀二號線,並將其寫入到一個數組爲char什麼。但我不能包含第三行,因爲它會轉到一個完全不同的矩陣。我的代碼到目前爲止:
ifstream input;
input.open("input1.txt");
input >> start;
char a=0;
string line;
while (getline(input, line))
{
a=0;
istringstream iss(line);
int length = line.size();
for (int i=0; i<length; i++)
{
iss >> a;
A[i] = a;
cout << A[i] << " " << i << endl;
}
}
input.close();
但是,有了這段代碼,它總是爲第3行啓動新數組。我究竟做錯了什麼?解決它的最簡單方法是什麼?謝謝。
-----------------------------更新---------------- ----------------------
我修改了代碼,但仍無法正常工作。我得到了這樣的結果:5)-└而不是正確的。我當前的代碼:
void Read(int &numLines, int &start, vector<char>&A, char B[][5])
{
ifstream input;
input.open("input.txt");
input >> start;
input.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
string line;
if(getline(input, line))
{
for(char temp: line)
{
A.push_back(temp);
}
}
input.close();
}
A
這裏就是我想通過焦炭 Start
寫2號線到,焦矢量就是一個整數,其中我存儲一號線(7)
非常感謝您的建議
你是什麼意思「開始新陣列」?什麼是'A'?你的[MCVE]在哪裏? –
由於'while'循環一直保持讀取直到文件結束,因此將每行解析到'A'數組中,從邏輯上講,'A'數組最後將具有文件中最後一行的解析內容。 –
也正在讀入'int'的第一行嗎? –