标准输入未读取最后一行
stdin not reading last line of input
所以我有一个这样的程序:
#include <iostream>
using namespace std;
int factorial(int x) {
int result = 1;
for(x; x > 1; --x) {
result*=x;
}
return result;
}
int main() {
// your code goes here
int n;
std::cin >> n;
for(int i = 0; i < n; ++i) {
std::cout<< "n";
std::cout << "entering for loop ";
int x;
std::cin >> x;
std::cout << "entering fac ";
std::cout << factorial(x);
std::cout << "leaving fac ";
std::cout << "leaving for loop ";
std::cout << "n";
}
return 0;
}
当我运行程序而不是一次给出一个输入时,我一次将所有输入到终端中。在给它输入时,如下所示:
四
1
阿拉伯数字
5
3
程序输出:
进入 for 循环 进入 FAC1离开 FAC 离开 for 循环
进入 for 循环 进入 FAC 2离开 FAC 离开 for 循环
进入 for 循环 进入 FAC120离开 FAC 离开 for 循环
进入 for 循环
如您所见,它没有从标准输入接收最后一个值。为什么会这样,有人可以解释一下吗?
您可能忘记了最后一个新行。
如果您没有在最后按回车键,则代码仍在此行等待:
std::cin >> x;
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 如何从一行中读取特定数量的字符?(C++)
- 读取最后一行代码算法 - c++ 时出现问题
- 而(!inputfile.eof())只读取第一行?
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 需要从存档中读取一行文本.txt直到找到"hhh",然后转到下一行
- 从文本文件中读取一行并将其存储在 C++ 中的 2D 矢量中
- 从文件中的一行读取特定数据-C++
- 使用std::getline()读取一行
- 从文本文件中的每一行读取数字,并计算数字重复的次数
- 从文件读取并在一行中写入 cout
- 将 ifstream 文件和每一行读取到数组中
- 从文件 c++ 中的下一行读取
- 在同一行读取具有多个类型的文件
- 写入终端并从同一行读取
- 如何在c++中从最后一行读取文本文件
- 逐行读取数组,每一行读取3个值
- 在同一行读取字符串和整数
- 从一行读取hh:mm格式的时间