減少。考慮下面的一段代碼。該函數從文件讀取一些整數和字符串。奇怪的是,循環計數器變量被.get()
const int vardo_ilgis = 10;
void skaityti(int &n, int &m, int &tiriama, avys A[])
{
ifstream fd("test.txt");
fd >> n >> m >> tiriama;
fd.ignore(80, '\n');
char vard[vardo_ilgis]; // <---
for(int i = 1; i <= n; i++)
{
cout << i << ' ';
fd.get(vard, vardo_ilgis+1); // <---
cout << i << endl;
A[i].vardas = vard;
getline(fd, A[i].DNR);
}
fd.close();
}
和輸入:
4 6
4
Baltukas TAGCTT
Bailioji ATGCAA
Doli AGGCTC
Smarkuolis AATGAA
在這種情況下,變量 'vard' 具有長度vardo_ilgis = 10,但在功能fd.get讀出輸入是vardo_ilgis + 1 = 11(大於數據存儲的可變長度)。我並沒有問如何解決一個問題,因爲很明顯,不能讀取比存儲在變量上更多的內容。 但是,我真的很想理解這種行爲的原因:循環計數變量被fd.get減少。爲什麼以及如何發生這種情況?這是這段代碼的輸出:
1 0
1 0
1 0
1 0
1 1
2 2
3 3
4 4
這是哪一語言?聽起來像高Valyrian – TemplateRex