因此,我编写了一个程序,当从文件中获取输入时,该程序可以按预期运行,但是会引发“超出运行时间”错误(我正在使用onlinegdb)。两种情况下的输入都是这样分开的:
```
input
```
我将其复制到文本文件中并且可以使用,但是在屏幕底部将输入作为标准输入输入是不起作用的。我也可以输入控制台,也可以正常工作。我的readFromFile函数是相同的函数,但是具有文件I / O函数而不是cin。这是我第一次真正尝试输入/输出。请帮忙!
void readFromInput() {
string Word;
int count = 0;
while (cin >> Word) {
if (Word == "```") {
count++;
}
if (count == 2) {break;} //exit after recieving opening and closing ```
if (Word == "Add") {
//do stuff
}
if (Word == "Charge") {
//do stuff
}
if (Word == "Credit") {
//do stuff
}
}
return;
}
答案 0 :(得分:2)
标准输入/输出有一些特殊功能不适用于普通文件流:
默认情况下,C ++ std::cin
和std::cout
链接到C流。要使它们保持同步很昂贵。如果您不使用C流,则没有必要。要删除此费用,请取消链接:
int main()
{
std::ios::sync_with_stdio(false);
}
如果您的代码使用输入和输出流。从std::cin
读取将强制刷新std::cout
(以确保用户问题反映了输入问题)。如果两者未链接,则效率可能很低。所以解开他们,
int main()
{
std::cin.tie(nullptr);
}
与'\n'
相比,更喜欢使用std::endl
,以避免额外的冲洗。