我正在嘗試一行一行地顯示命令行輸入文本文件的文本。但由於某種原因,它會跳過第一行後每行的第一個單詞。爲什麼cin.getline()跳過每行中的第一個單詞?
代碼:運行./a.out < moby.txt
using std::cout;
using std::cin;
using std::endl;
int main (int args, char* argv[])
{
char x[100];
char y[100];
char z[100];
cin.getline(x,100) >> argv[2];
cin.getline(y,100) >> argv[2];
cin.getline(z,100) >> argv[2];
cout << x <<endl;
cout << y <<endl;
cout << z <<endl;
return 1;
}
顯示此:
CHAPTER 1. Loomings.
me Ishmael. Some years ago--never mind how long precisely--having
or no money in my purse, and nothing particular to interest me on
但前三行中moby.txt是這樣的:
CHAPTER 1. Loomings.
Call me Ishmael. Some years ago--never mind how long precisely--having
little or no money in my purse, and nothing particular to interest me on
代碼省略了「Call」和「little」。
我覺得這是一個\ n錯誤,但我不知道如何解決它。 在此先感謝您的幫助。
cin.getline(y,100)>> argv [2] ;.我將不得不記住,下次我真的希望**在每一行的開始處跳過某些內容。我的同事永遠不會猜到它的作用! – 2011-03-06 09:41:33