我似乎無法理解此程序的期望。誰能幫我?我是一個絕對無能的第一年學生。包括指針在內的C++作業
編寫一個讀取文本行並將它們附加到char緩衝區[1000]的程序。通過調用cin.get(ch)一次讀取一個字符,其中ch是char類型的變量。使用輸入重定向。閱讀1,000個字符後停止。在閱讀文本時,將所有換行符'\ n'替換爲'\ 0'結束符。建立一個數組char * lines [100],以便該數組中的指針指向文本中行的開始。如果輸入有更多的行,則只考慮100個輸入行。然後以相反的順序顯示行,從最後一行輸入行開始。 這是我到目前爲止有:
#include <iostream>
using namespace std;
int main()
{
const int BUFFER_CAPACITY = 1000;
const int LINES_CAPACITY = 100;
char buffer[BUFFER_CAPACITY];
char* lines[LINES_CAPACITY];
int buffer_position = 0;
int lines_position = 0;
bool more = true;
bool newline = true;
while (more)
{
char c = cin.get();
if (cin.fail())
{
more = false;
}
else if (buffer_position >= BUFFER_CAPACITY) // at (or above) capacity
{
more = false;
}
if (newline)
{
if (lines_position < LINES_CAPACITY)
{
lines[lines_position] = buffer + buffer_position;
lines_position++;
newline = false;
}
else { more = false; }
}
if (more)
{
if (c == '\n')
{
buffer[buffer_position] = '\0';
buffer_position++;
newline = true;
}
else
{
buffer[buffer_position] = c;
buffer_position++;
}
}
}
buffer[BUFFER_CAPACITY - 1] = '\0';
for (int i = lines_position - 1; i >= 0; i--)
{
cout << lines[i] << endl;
}
return 0;
}
到目前爲止你有什麼?你幾乎可以通過閱讀問題陳述來編寫代碼。 –
推薦閱讀:http://ericlippert.com/2014/03/21/find-a-simpler-problem/ – Steve