【发布时间】:2016-03-28 07:41:30
【问题描述】:
运行此代码后,它会提示我输入第一个路径,例如c:/hello,然后输入第二个路径,例如c:/世界。
输出:
- 第一条路径:
c:/hello - 第二条路径:
:/world
如您所见,第二条路径前面缺少一个 c。但是在我删除 cin.get() 之后 cout
system("cls");
cout << "Enter first path: ";
cin.get();
getline(cin, firstPath);
cout << endl;
cout << "First path: " << firstPath << endl;
cout << endl;
cout << "Enter second path: ";
//cin.get(); // Need to be remove to shows c:/world
getline(cin, second path);
cout << endl;
cout << "Second path: " << secondPath<< endl;
cout << endl;
system("pause")
system("cls");
【问题讨论】:
-
你认为
cin.get()是做什么的? -
接受 char 吗?但是第一个路径没有问题。
-
那么你的问题不应该是为什么第一个字符串没有缺少第一个字符吗?答案在于您没有向我们展示的部分代码。 stackoverflow.com/help/mcve
-
你的输出不正确,因为
cin.get(),第一个路径不应该显示第一个字符。它不显示第一个字符,因为cin.get()将第一个字符从用户输入中移开。 -
@RowenChumacera:除非输入缓冲区中还有前一个操作留下的东西。而且由于 OP 没有显示完整的示例,假设 OP 正确描述了输出,几乎可以肯定是这种情况。