我正在尝试一行一行地显示命令行输入文本文件的文本。但由于某种原因,它会跳过第一行后每行的第一个单词。为什么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